Built with Alectryon, running Coq+SerAPI v8.13.0+0.13.0. Bubbles () indicate interactive fragments: hover for details, tap to reveal contents. Use Ctrl+↑ Ctrl+↓ to navigate, Ctrl+🖱️ to focus. On Mac, use instead of Ctrl.
From stdpp Require Import prelude.
From Coq Require Import FinFun Lia.
From VLSM.Lib Require Import Preamble ListExtras StdppListSet FinExtras.
From VLSM Require Import Core.VLSM Core.VLSMProjections Core.Composition Core.Equivocation.
From VLSM Require Import Core.Equivocation.NoEquivocation Core.Equivocation.FullNode Core.Equivocation.FixedSetEquivocation.
From VLSM Require Import Core.SubProjectionTraces Core.ProjectionTraces.
From VLSM Require Import Core.Equivocators.Common Core.Equivocators.Projections.
From VLSM Require Import Core.Equivocators.MessageProperties.
From VLSM Require Import Core.Equivocators.Composition.Common.
From VLSM Require Import Core.Equivocators.Composition.Projections.

VLSM Equivocators Fixed Equivocation

Section equivocators_fixed_equivocations_vlsm.

Context
  {message : Type}
  {index : Type}
  {IndEqDec : EqDecision index}
  (IM : index -> VLSM message)
  (Hbs : forall i : index, HasBeenSentCapability (IM i))
  (equivocator_IM := equivocator_IM IM)
  (index_listing : list index)
  (finite_index : Listing index_listing)
  (equivocating : set index)
  .
Definition of fixed-equivocation for states of the composition of equivocators.
Definition state_has_fixed_equivocation
  (s : composite_state equivocator_IM)
  : Prop
  :=
  (equivocating_indices IM index_listing s) ⊆ equivocating.

Definition equivocators_fixed_equivocations_constraint
  (l : composite_label equivocator_IM)
  (som : composite_state equivocator_IM * option message)
  (som' := composite_transition equivocator_IM l som)
  : Prop
  := equivocators_no_equivocations_constraint IM Hbs l som
  /\ state_has_fixed_equivocation (fst som').
If the starting state_has_fixed_equivocation and the transition is made on an equivocating index, then the resulting state_has_fixed_equivocation.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
l: composite_label equivocator_IM
s: composite_state equivocator_IM
om: option message
s': composite_state equivocator_IM
om': option message
Ht: composite_transition equivocator_IM l (s, om) = (s', om')
Hs: state_has_fixed_equivocation s
Heqv: projT1 l ∈ equivocating

state_has_fixed_equivocation s'
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
l: composite_label equivocator_IM
s: composite_state equivocator_IM
om: option message
s': composite_state equivocator_IM
om': option message
Ht: composite_transition equivocator_IM l (s, om) = (s', om')
Hs: state_has_fixed_equivocation s
Heqv: projT1 l ∈ equivocating

state_has_fixed_equivocation s'
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
l: composite_label equivocator_IM
s: composite_state equivocator_IM
om: option message
s': composite_state equivocator_IM
om': option message
Ht: composite_transition equivocator_IM l (s, om) = (s', om')
Hs: state_has_fixed_equivocation s
Heqv: projT1 l ∈ equivocating
i: index
Hi: i ∈ equivocating_indices IM index_listing s'

i ∈ equivocating
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
l: composite_label equivocator_IM
s: composite_state equivocator_IM
om: option message
s': composite_state equivocator_IM
om': option message
Ht: composite_transition equivocator_IM l (s, om) = (s', om')
Hs: state_has_fixed_equivocation s
Heqv: projT1 l ∈ equivocating
i: index
Hi: i ∈ equivocating_indices IM index_listing s'
n: i ≠ projT1 l

i ∈ equivocating
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
x: index
v: EquivocatorLabel (IM x)
s: _composite_state equivocator_IM
om: option message
s': _composite_state equivocator_IM
om': option message
Ht: (let (si', om') := equivocator_transition (IM x) v (s x, om) in (state_update equivocator_IM s x si', om')) = (s', om')
Hs: state_has_fixed_equivocation s
Heqv: x ∈ equivocating
i: index
Hi: i ∈ equivocating_indices IM index_listing s'
n: i ≠ x

i ∈ equivocating
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
x: index
v: EquivocatorLabel (IM x)
s: _composite_state equivocator_IM
om: option message
s': _composite_state equivocator_IM
om': option message
e: equivocator_state (IM x)
o: option message
Ht: (state_update equivocator_IM s x e, o) = (s', om')
Hs: state_has_fixed_equivocation s
Heqv: x ∈ equivocating
i: index
Hi: i ∈ equivocating_indices IM index_listing s'
n: i ≠ x

i ∈ equivocating
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
x: index
v: EquivocatorLabel (IM x)
s: _composite_state equivocator_IM
om: option message
s': _composite_state equivocator_IM
om': option message
e: equivocator_state (IM x)
o: option message
Ht: (state_update equivocator_IM s x e, o) = (s', om')
Hs: state_has_fixed_equivocation s
Heqv: x ∈ equivocating
i: index
Hi: i ∈ equivocating_indices IM index_listing s'
n: i ≠ x
H0: state_update equivocator_IM s x e = s'
H1: o = om'

i ∈ equivocating
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
x: index
v: EquivocatorLabel (IM x)
s: _composite_state equivocator_IM
om, om': option message
e: equivocator_state (IM x)
Ht: (state_update equivocator_IM s x e, om') = (state_update equivocator_IM s x e, om')
Hs: state_has_fixed_equivocation s
Heqv: x ∈ equivocating
i: index
Hi: i ∈ equivocating_indices IM index_listing (state_update equivocator_IM s x e)
n: i ≠ x

i ∈ equivocating
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
x: index
v: EquivocatorLabel (IM x)
s: _composite_state equivocator_IM
om, om': option message
e: equivocator_state (IM x)
Ht: (state_update equivocator_IM s x e, om') = (state_update equivocator_IM s x e, om')
Hs: state_has_fixed_equivocation s
Heqv: x ∈ equivocating
i: index
Hi: is_equivocating_state (IM i) (state_update equivocator_IM s x e i)
n: i ≠ x

i ∈ equivocating
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
x: index
v: EquivocatorLabel (IM x)
s: _composite_state equivocator_IM
om, om': option message
e: equivocator_state (IM x)
Ht: (state_update equivocator_IM s x e, om') = (state_update equivocator_IM s x e, om')
Hs: state_has_fixed_equivocation s
Heqv: x ∈ equivocating
i: index
Hi: is_equivocating_state (IM i) (s i)
n: i ≠ x

i ∈ equivocating
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
x: index
v: EquivocatorLabel (IM x)
s: _composite_state equivocator_IM
om, om': option message
e: equivocator_state (IM x)
Ht: (state_update equivocator_IM s x e, om') = (state_update equivocator_IM s x e, om')
Hs: state_has_fixed_equivocation s
Heqv: x ∈ equivocating
i: index
Hi: is_equivocating_state (IM i) (s i)
n: i ≠ x

i ∈ equivocating_indices IM index_listing s
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
x: index
v: EquivocatorLabel (IM x)
s: _composite_state equivocator_IM
om, om': option message
e: equivocator_state (IM x)
Ht: (state_update equivocator_IM s x e, om') = (state_update equivocator_IM s x e, om')
Hs: state_has_fixed_equivocation s
Heqv: x ∈ equivocating
i: index
Hi: is_equivocating_state (IM i) (s i)
n: i ≠ x

is_equivocating_state (IM i) (s i) ∧ i ∈ index_listing
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
x: index
v: EquivocatorLabel (IM x)
s: _composite_state equivocator_IM
om, om': option message
e: equivocator_state (IM x)
Ht: (state_update equivocator_IM s x e, om') = (state_update equivocator_IM s x e, om')
Hs: state_has_fixed_equivocation s
Heqv: x ∈ equivocating
i: index
Hi: is_equivocating_state (IM i) (s i)
n: i ≠ x

i ∈ index_listing
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
x: index
v: EquivocatorLabel (IM x)
s: _composite_state equivocator_IM
om, om': option message
e: equivocator_state (IM x)
Ht: (state_update equivocator_IM s x e, om') = (state_update equivocator_IM s x e, om')
Hs: state_has_fixed_equivocation s
Heqv: x ∈ equivocating
i: index
Hi: is_equivocating_state (IM i) (s i)
n: i ≠ x

In i index_listing
apply finite_index. Qed.
If the starting state_has_fixed_equivocation and the transition is made on the original copy, then the resulting state_has_fixed_equivocation.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
l: composite_label equivocator_IM
s: composite_state equivocator_IM
om: option message
s': composite_state equivocator_IM
om': option message
Ht: composite_transition equivocator_IM l (s, om) = (s', om')
Hs: state_has_fixed_equivocation s
li: vlabel (IM (projT1 l))
Hzero: projT2 l = ContinueWith 0 li

state_has_fixed_equivocation s'
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
l: composite_label equivocator_IM
s: composite_state equivocator_IM
om: option message
s': composite_state equivocator_IM
om': option message
Ht: composite_transition equivocator_IM l (s, om) = (s', om')
Hs: state_has_fixed_equivocation s
li: vlabel (IM (projT1 l))
Hzero: projT2 l = ContinueWith 0 li

state_has_fixed_equivocation s'
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
l: composite_label equivocator_IM
s: composite_state equivocator_IM
om: option message
s': composite_state equivocator_IM
om': option message
Ht: composite_transition equivocator_IM l (s, om) = (s', om')
Hs: state_has_fixed_equivocation s
li: vlabel (IM (projT1 l))
Hzero: projT2 l = ContinueWith 0 li
i: index
Hi: i ∈ equivocating_indices IM index_listing s'

i ∈ equivocating
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
l: composite_label equivocator_IM
s: composite_state equivocator_IM
om: option message
s': composite_state equivocator_IM
om': option message
Ht: composite_transition equivocator_IM l (s, om) = (s', om')
Hs: state_has_fixed_equivocation s
li: vlabel (IM (projT1 l))
Hzero: projT2 l = ContinueWith 0 li
i: index
Hi: i ∈ equivocating_indices IM index_listing s'

i ∈ equivocating_indices IM index_listing s
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
l: composite_label equivocator_IM
s: composite_state equivocator_IM
om: option message
s': composite_state equivocator_IM
om': option message
Ht: composite_transition equivocator_IM l (s, om) = (s', om')
Hs: state_has_fixed_equivocation s
li: vlabel (IM (projT1 l))
Hzero: projT2 l = ContinueWith 0 li
i: index
Hi: is_equivocating_state (IM i) (s' i)

i ∈ equivocating_indices IM index_listing s
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
l: composite_label equivocator_IM
s: composite_state equivocator_IM
om: option message
s': composite_state equivocator_IM
om': option message
Ht: composite_transition equivocator_IM l (s, om) = (s', om')
Hs: state_has_fixed_equivocation s
li: vlabel (IM (projT1 l))
Hzero: projT2 l = ContinueWith 0 li
i: index
Hi: is_equivocating_state (IM i) (s' i)

is_equivocating_state (IM i) (s i) ∧ i ∈ index_listing
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
l: composite_label equivocator_IM
s: composite_state equivocator_IM
om: option message
s': composite_state equivocator_IM
om': option message
Ht: composite_transition equivocator_IM l (s, om) = (s', om')
Hs: state_has_fixed_equivocation s
li: vlabel (IM (projT1 l))
Hzero: projT2 l = ContinueWith 0 li
i: index
Hi: is_equivocating_state (IM i) (s' i)

is_equivocating_state (IM i) (s i)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
l: composite_label equivocator_IM
s: composite_state equivocator_IM
om: option message
s': composite_state equivocator_IM
om': option message
Ht: (let (i, li) := l in let (si', om') := equivocator_transition (IM i) li (s i, om) in (state_update equivocator_IM s i si', om')) = (s', om')
Hs: state_has_fixed_equivocation s
li: vlabel (IM (projT1 l))
Hzero: projT2 l = ContinueWith 0 li
i: index
Hi: is_equivocating_state (IM i) (s' i)

is_equivocating_state (IM i) (s i)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
eqv: index
leqv: vlabel (equivocator_IM eqv)
s: composite_state equivocator_IM
om: option message
s': composite_state equivocator_IM
om': option message
Ht: (let (si', om') := equivocator_transition (IM eqv) leqv (s eqv, om) in (state_update equivocator_IM s eqv si', om')) = (s', om')
Hs: state_has_fixed_equivocation s
li: vlabel (IM (projT1 (existT eqv leqv)))
Hzero: projT2 (existT eqv leqv) = ContinueWith 0 li
i: index
Hi: is_equivocating_state (IM i) (s' i)

is_equivocating_state (IM i) (s i)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
eqv: index
leqv: vlabel (equivocator_IM eqv)
s: composite_state equivocator_IM
om: option message
s': composite_state equivocator_IM
om': option message
si': equivocator_state (IM eqv)
_om': option message
Hti: equivocator_transition (IM eqv) leqv (s eqv, om) = (si', _om')
Ht: (state_update equivocator_IM s eqv si', _om') = (s', om')
Hs: state_has_fixed_equivocation s
li: vlabel (IM (projT1 (existT eqv leqv)))
Hzero: projT2 (existT eqv leqv) = ContinueWith 0 li
i: index
Hi: is_equivocating_state (IM i) (s' i)

is_equivocating_state (IM i) (s i)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
eqv: index
leqv: vlabel (equivocator_IM eqv)
s: composite_state equivocator_IM
om: option message
s': composite_state equivocator_IM
om': option message
si': equivocator_state (IM eqv)
_om': option message
Hti: equivocator_transition (IM eqv) leqv (s eqv, om) = (si', _om')
Ht: (state_update equivocator_IM s eqv si', _om') = (s', om')
Hs: state_has_fixed_equivocation s
li: vlabel (IM (projT1 (existT eqv leqv)))
Hzero: projT2 (existT eqv leqv) = ContinueWith 0 li
i: index
Hi: is_equivocating_state (IM i) (s' i)
H0: state_update equivocator_IM s eqv si' = s'
H1: _om' = om'

is_equivocating_state (IM i) (s i)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
eqv: index
leqv: vlabel (equivocator_IM eqv)
s: composite_state equivocator_IM
om, om': option message
si': equivocator_state (IM eqv)
Ht: (state_update equivocator_IM s eqv si', om') = (state_update equivocator_IM s eqv si', om')
Hti: equivocator_transition (IM eqv) leqv (s eqv, om) = (si', om')
Hs: state_has_fixed_equivocation s
li: vlabel (IM (projT1 (existT eqv leqv)))
Hzero: projT2 (existT eqv leqv) = ContinueWith 0 li
i: index
Hi: is_equivocating_state (IM i) (state_update equivocator_IM s eqv si' i)

is_equivocating_state (IM i) (s i)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
eqv: index
leqv: vlabel (equivocator_IM eqv)
s: composite_state equivocator_IM
om, om': option message
si': equivocator_state (IM eqv)
Hti: equivocator_transition (IM eqv) leqv (s eqv, om) = (si', om')
Hs: state_has_fixed_equivocation s
li: vlabel (IM (projT1 (existT eqv leqv)))
Hzero: projT2 (existT eqv leqv) = ContinueWith 0 li
i: index
Hi: is_equivocating_state (IM i) (state_update equivocator_IM s eqv si' i)

is_equivocating_state (IM i) (s i)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
eqv: index
leqv: vlabel (equivocator_IM eqv)
s: composite_state equivocator_IM
om, om': option message
si': equivocator_state (IM eqv)
Hti: equivocator_transition (IM eqv) leqv (s eqv, om) = (si', om')
Hs: state_has_fixed_equivocation s
li: vlabel (IM (projT1 (existT eqv leqv)))
Hzero: projT2 (existT eqv leqv) = ContinueWith 0 li
i: index
Hi: is_equivocating_state (IM i) (state_update equivocator_IM s eqv si' i)
e: i = eqv

is_equivocating_state (IM i) (s i)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
eqv: index
leqv: vlabel (equivocator_IM eqv)
s: composite_state equivocator_IM
om, om': option message
si': equivocator_state (IM eqv)
Hti: equivocator_transition (IM eqv) leqv (s eqv, om) = (si', om')
Hs: state_has_fixed_equivocation s
li: vlabel (IM (projT1 (existT eqv leqv)))
Hzero: projT2 (existT eqv leqv) = ContinueWith 0 li
i: index
Hi: is_equivocating_state (IM i) (state_update equivocator_IM s eqv si' i)
n: i ≠ eqv
is_equivocating_state (IM i) (s i)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
eqv: index
leqv: vlabel (equivocator_IM eqv)
s: composite_state equivocator_IM
om, om': option message
si': equivocator_state (IM eqv)
Hti: equivocator_transition (IM eqv) leqv (s eqv, om) = (si', om')
Hs: state_has_fixed_equivocation s
li: vlabel (IM (projT1 (existT eqv leqv)))
Hzero: projT2 (existT eqv leqv) = ContinueWith 0 li
i: index
Hi: is_equivocating_state (IM i) (state_update equivocator_IM s eqv si' i)
e: i = eqv

is_equivocating_state (IM i) (s i)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
eqv: index
leqv: vlabel (equivocator_IM eqv)
s: composite_state equivocator_IM
om, om': option message
si': equivocator_state (IM eqv)
Hti: equivocator_transition (IM eqv) leqv (s eqv, om) = (si', om')
Hs: state_has_fixed_equivocation s
li: vlabel (IM (projT1 (existT eqv leqv)))
Hzero: projT2 (existT eqv leqv) = ContinueWith 0 li
Hi: is_equivocating_state (IM eqv) (state_update equivocator_IM s eqv si' eqv)

is_equivocating_state (IM eqv) (s eqv)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
eqv: index
leqv: vlabel (equivocator_IM eqv)
s: composite_state equivocator_IM
om, om': option message
si': equivocator_state (IM eqv)
Hti: equivocator_transition (IM eqv) leqv (s eqv, om) = (si', om')
Hs: state_has_fixed_equivocation s
li: vlabel (IM (projT1 (existT eqv leqv)))
Hzero: projT2 (existT eqv leqv) = ContinueWith 0 li
Hi: is_equivocating_state (IM eqv) si'

is_equivocating_state (IM eqv) (s eqv)
apply (zero_descriptor_transition_reflects_equivocating_state (IM eqv) _ _ _ _ _ Hti _ Hzero Hi).
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
eqv: index
leqv: vlabel (equivocator_IM eqv)
s: composite_state equivocator_IM
om, om': option message
si': equivocator_state (IM eqv)
Hti: equivocator_transition (IM eqv) leqv (s eqv, om) = (si', om')
Hs: state_has_fixed_equivocation s
li: vlabel (IM (projT1 (existT eqv leqv)))
Hzero: projT2 (existT eqv leqv) = ContinueWith 0 li
i: index
Hi: is_equivocating_state (IM i) (state_update equivocator_IM s eqv si' i)
n: i ≠ eqv

is_equivocating_state (IM i) (s i)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
eqv: index
leqv: vlabel (equivocator_IM eqv)
s: composite_state equivocator_IM
om, om': option message
si': equivocator_state (IM eqv)
Hti: equivocator_transition (IM eqv) leqv (s eqv, om) = (si', om')
Hs: state_has_fixed_equivocation s
li: vlabel (IM (projT1 (existT eqv leqv)))
Hzero: projT2 (existT eqv leqv) = ContinueWith 0 li
i: index
Hi: is_equivocating_state (IM i) (s i)
n: i ≠ eqv

is_equivocating_state (IM i) (s i)
assumption. Qed.
If a future state has fixed equivocation, then so must the current state.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
s1, s2: composite_state equivocator_IM
Hfutures: in_futures (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) s1 s2

state_has_fixed_equivocation s2 → state_has_fixed_equivocation s1
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
s1, s2: composite_state equivocator_IM
Hfutures: in_futures (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) s1 s2

state_has_fixed_equivocation s2 → state_has_fixed_equivocation s1
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
s1, s2: composite_state equivocator_IM
tr: list transition_item
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) s1 s2 tr

state_has_fixed_equivocation s2 → state_has_fixed_equivocation s1
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
s, f: state
tl: list transition_item
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) s f tl
s': state
iom, oom: option message
l: label
Ht: input_valid_transition (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) l (s', iom) (s, oom)
IHHtr: state_has_fixed_equivocation f → state_has_fixed_equivocation s

state_has_fixed_equivocation f → state_has_fixed_equivocation s'
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
s, f: state
tl: list transition_item
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) s f tl
s': state
iom, oom: option message
l: label
Ht: input_valid_transition (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) l (s', iom) (s, oom)
IHHtr: state_has_fixed_equivocation f → state_has_fixed_equivocation s
Hf: state_has_fixed_equivocation f

state_has_fixed_equivocation s'
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
s, f: state
tl: list transition_item
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) s f tl
s': state
iom, oom: option message
l: label
Ht: input_valid_transition (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) l (s', iom) (s, oom)
IHHtr: state_has_fixed_equivocation s
Hf: state_has_fixed_equivocation f

state_has_fixed_equivocation s'
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
s, f: state
tl: list transition_item
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) s f tl
s': state
iom, oom: option message
l: label
Ht: input_valid_transition (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) l (s', iom) (s, oom)
Hf: state_has_fixed_equivocation f

state_has_fixed_equivocation s → state_has_fixed_equivocation s'
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
s, f: state
tl: list transition_item
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) s f tl
s': state
iom, oom: option message
l: label
Ht: input_valid_transition (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) l (s', iom) (s, oom)
Hf: state_has_fixed_equivocation f

equivocating_indices IM index_listing s' ⊆ equivocating_indices IM index_listing s
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
s, f: state
tl: list transition_item
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) s f tl
s': state
iom, oom: option message
l: label
Ht: transition l (s', iom) = (s, oom)
Hf: state_has_fixed_equivocation f

equivocating_indices IM index_listing s' ⊆ equivocating_indices IM index_listing s
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
s, f: state
tl: list transition_item
Htr: finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) s f tl
s': state
iom, oom: option message
l: label
Hf: state_has_fixed_equivocation f

transition l (s', iom) = (s, oom) → equivocating_indices IM index_listing s' ⊆ equivocating_indices IM index_listing s
apply equivocators_transition_preserves_equivocating_indices. Qed.
Composition of equivocators with no message equivocation and a fixed set of machines allowed to state-equivocate.
Definition equivocators_fixed_equivocations_vlsm
  : VLSM message
  :=
  composite_vlsm equivocator_IM equivocators_fixed_equivocations_constraint.

message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
s: composite_state equivocator_IM
Hs: valid_state_prop equivocators_fixed_equivocations_vlsm s
i: index
Hi: i ∉ equivocating

is_singleton_state (IM i) (s i)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
s: composite_state equivocator_IM
Hs: valid_state_prop equivocators_fixed_equivocations_vlsm s
i: index
Hi: i ∉ equivocating

is_singleton_state (IM i) (s i)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
s: composite_state equivocator_IM
Hs: (is : state) (tr : list transition_item), finite_valid_trace_init_to equivocators_fixed_equivocations_vlsm is s tr
i: index
Hi: i ∉ equivocating

is_singleton_state (IM i) (s i)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
s: composite_state equivocator_IM
is: state
tr: list transition_item
Htr: finite_valid_trace_from_to equivocators_fixed_equivocations_vlsm is s tr
His: initial_state_prop is
i: index
Hi: i ∉ equivocating

is_singleton_state (IM i) (s i)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
s: composite_state equivocator_IM
is: state
tr: list transition_item
Htr: finite_valid_trace_from_to equivocators_fixed_equivocations_vlsm is s tr
His: initial_state_prop is
i: index
Hi: i ∉ equivocating
H: is_singleton_state (IM i) (is i)

is_singleton_state (IM i) (s i)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
s: composite_state equivocator_IM
is: state
tr: list transition_item
Htr: finite_valid_trace_from_to equivocators_fixed_equivocations_vlsm is s tr
i: index
Hi: i ∉ equivocating
H: is_singleton_state (IM i) (is i)

is_singleton_state (IM i) (s i)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
s: state
Hs: valid_state_prop equivocators_fixed_equivocations_vlsm s
i: index
Hi: i ∉ equivocating
H: is_singleton_state (IM i) (s i)

is_singleton_state (IM i) (s i)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
s, f: state
tl: list transition_item
Htr: finite_valid_trace_from_to equivocators_fixed_equivocations_vlsm s f tl
s': state
iom, oom: option message
l: label
Ht: input_valid_transition equivocators_fixed_equivocations_vlsm l (s', iom) (s, oom)
i: index
Hi: i ∉ equivocating
H: is_singleton_state (IM i) (s' i)
IHHtr: is_singleton_state (IM i) (s i) → is_singleton_state (IM i) (f i)
is_singleton_state (IM i) (f i)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
s: state
Hs: valid_state_prop equivocators_fixed_equivocations_vlsm s
i: index
Hi: i ∉ equivocating
H: is_singleton_state (IM i) (s i)

is_singleton_state (IM i) (s i)
assumption.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
s, f: state
tl: list transition_item
Htr: finite_valid_trace_from_to equivocators_fixed_equivocations_vlsm s f tl
s': state
iom, oom: option message
l: label
Ht: input_valid_transition equivocators_fixed_equivocations_vlsm l (s', iom) (s, oom)
i: index
Hi: i ∉ equivocating
H: is_singleton_state (IM i) (s' i)
IHHtr: is_singleton_state (IM i) (s i) → is_singleton_state (IM i) (f i)

is_singleton_state (IM i) (f i)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
s, f: state
tl: list transition_item
Htr: finite_valid_trace_from_to equivocators_fixed_equivocations_vlsm s f tl
s': state
iom, oom: option message
l: label
Ht: input_valid_transition equivocators_fixed_equivocations_vlsm l (s', iom) (s, oom)
i: index
Hi: i ∉ equivocating
H: is_singleton_state (IM i) (s' i)

is_singleton_state (IM i) (s i)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
s, f: state
tl: list transition_item
Htr: finite_valid_trace_from_to equivocators_fixed_equivocations_vlsm s f tl
s': state
iom, oom: option message
l: label
Hfixed: state_has_fixed_equivocation (composite_transition equivocator_IM l (s', iom)).1
Ht: transition l (s', iom) = (s, oom)
i: index
Hi: i ∉ equivocating
H: is_singleton_state (IM i) (s' i)

is_singleton_state (IM i) (s i)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
s, f: _composite_state equivocator_IM
tl: list transition_item
Htr: finite_valid_trace_from_to equivocators_fixed_equivocations_vlsm s f tl
s': _composite_state equivocator_IM
iom, oom: option message
l: _composite_label equivocator_IM
Hfixed: state_has_fixed_equivocation (let (i, li) := l in let (si', om') := vtransition (equivocator_IM i) li (s' i, iom) in (state_update equivocator_IM s' i si', om')).1
Ht: (let (i, li) := l in let (si', om') := vtransition (equivocator_IM i) li (s' i, iom) in (state_update equivocator_IM s' i si', om')) = (s, oom)
i: index
Hi: i ∉ equivocating
H: is_singleton_state (IM i) (s' i)

is_singleton_state (IM i) (s i)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
s, f: _composite_state equivocator_IM
tl: list transition_item
Htr: finite_valid_trace_from_to equivocators_fixed_equivocations_vlsm s f tl
s': _composite_state equivocator_IM
iom, oom: option message
l: _composite_label equivocator_IM
Hfixed: state_has_fixed_equivocation (s, oom).1
Ht: (let (i, li) := l in let (si', om') := vtransition (equivocator_IM i) li (s' i, iom) in (state_update equivocator_IM s' i si', om')) = (s, oom)
i: index
Hi: i ∉ equivocating
H: is_singleton_state (IM i) (s' i)

is_singleton_state (IM i) (s i)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
s, f: _composite_state equivocator_IM
tl: list transition_item
Htr: finite_valid_trace_from_to equivocators_fixed_equivocations_vlsm s f tl
s': _composite_state equivocator_IM
iom, oom: option message
l: _composite_label equivocator_IM
Hfixed: state_has_fixed_equivocation (s, oom).1
i: index
Hi: i ∉ equivocating
H: is_singleton_state (IM i) (s' i)

is_singleton_state (IM i) (s i)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
s, f: _composite_state equivocator_IM
tl: list transition_item
Htr: finite_valid_trace_from_to equivocators_fixed_equivocations_vlsm s f tl
s': _composite_state equivocator_IM
iom, oom: option message
l: _composite_label equivocator_IM
Hfixed: state_has_fixed_equivocation s
i: index
Hi: i ∉ equivocating
H: is_singleton_state (IM i) (s' i)

is_singleton_state (IM i) (s i)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
s, f: _composite_state equivocator_IM
tl: list transition_item
Htr: finite_valid_trace_from_to equivocators_fixed_equivocations_vlsm s f tl
s': _composite_state equivocator_IM
iom, oom: option message
l: _composite_label equivocator_IM
i: index
Hfixed: i ∈ equivocating_indices IM index_listing s → i ∈ equivocating
Hi: i ∉ equivocating
H: is_singleton_state (IM i) (s' i)

is_singleton_state (IM i) (s i)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
s, f: _composite_state equivocator_IM
tl: list transition_item
Htr: finite_valid_trace_from_to equivocators_fixed_equivocations_vlsm s f tl
s': _composite_state equivocator_IM
iom, oom: option message
l: _composite_label equivocator_IM
i: index
Hfixed: i ∈ equivocating_indices IM index_listing s → i ∈ equivocating
Hi: i ∉ equivocating
H: is_singleton_state (IM i) (s' i)
n: equivocator_state_n (s i) ≠ 1

is_singleton_state (IM i) (s i)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
s, f: _composite_state equivocator_IM
tl: list transition_item
Htr: finite_valid_trace_from_to equivocators_fixed_equivocations_vlsm s f tl
s': _composite_state equivocator_IM
iom, oom: option message
l: _composite_label equivocator_IM
i: index
Hfixed: i ∈ equivocating_indices IM index_listing s → i ∈ equivocating
Hi: i ∉ equivocating
H: is_singleton_state (IM i) (s' i)
n: equivocator_state_n (s i) ≠ 1

i ∈ equivocating
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
s, f: _composite_state equivocator_IM
tl: list transition_item
Htr: finite_valid_trace_from_to equivocators_fixed_equivocations_vlsm s f tl
s': _composite_state equivocator_IM
iom, oom: option message
l: _composite_label equivocator_IM
i: index
Hfixed: i ∈ equivocating_indices IM index_listing s → i ∈ equivocating
Hi: i ∉ equivocating
H: is_singleton_state (IM i) (s' i)
n: equivocator_state_n (s i) ≠ 1

i ∈ equivocating_indices IM index_listing s
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
s, f: _composite_state equivocator_IM
tl: list transition_item
Htr: finite_valid_trace_from_to equivocators_fixed_equivocations_vlsm s f tl
s': _composite_state equivocator_IM
iom, oom: option message
l: _composite_label equivocator_IM
i: index
Hfixed: i ∈ equivocating_indices IM index_listing s → i ∈ equivocating
Hi: i ∉ equivocating
H: is_singleton_state (IM i) (s' i)
n: equivocator_state_n (s i) ≠ 1

is_equivocating_state (IM i) (s i) ∧ i ∈ index_listing
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
s, f: _composite_state equivocator_IM
tl: list transition_item
Htr: finite_valid_trace_from_to equivocators_fixed_equivocations_vlsm s f tl
s': _composite_state equivocator_IM
iom, oom: option message
l: _composite_label equivocator_IM
i: index
Hfixed: i ∈ equivocating_indices IM index_listing s → i ∈ equivocating
Hi: i ∉ equivocating
H: is_singleton_state (IM i) (s' i)
n: equivocator_state_n (s i) ≠ 1

is_equivocating_state (IM i) (s i)
assumption. Qed.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
s: composite_state equivocator_IM
Hs: valid_state_prop equivocators_fixed_equivocations_vlsm s

state_has_fixed_equivocation s
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
s: composite_state equivocator_IM
Hs: valid_state_prop equivocators_fixed_equivocations_vlsm s

state_has_fixed_equivocation s
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
s: composite_state equivocator_IM
Hs: (is : state) (tr : list transition_item), finite_valid_trace_init_to equivocators_fixed_equivocations_vlsm is s tr

state_has_fixed_equivocation s
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
s: composite_state equivocator_IM
is: state
tr: list transition_item
Htr: finite_valid_trace_from_to equivocators_fixed_equivocations_vlsm is s tr
Hinit: initial_state_prop is

state_has_fixed_equivocation s
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
s: composite_state equivocator_IM
is: state
tr: list transition_item
Htr: finite_valid_trace_from_to equivocators_fixed_equivocations_vlsm is s tr
Hinit: initial_state_prop is

state_has_fixed_equivocation is
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
s: composite_state equivocator_IM
is: state
tr: list transition_item
Htr: finite_valid_trace_from_to equivocators_fixed_equivocations_vlsm is s tr
Hinit: initial_state_prop is
His: state_has_fixed_equivocation is
state_has_fixed_equivocation s
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
s: composite_state equivocator_IM
is: state
tr: list transition_item
Htr: finite_valid_trace_from_to equivocators_fixed_equivocations_vlsm is s tr
Hinit: initial_state_prop is

state_has_fixed_equivocation is
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
s: composite_state equivocator_IM
is: state
tr: list transition_item
Htr: finite_valid_trace_from_to equivocators_fixed_equivocations_vlsm is s tr
Hinit: initial_state_prop is
i: index
Hin: i ∈ equivocating_indices IM index_listing is

i ∈ equivocating
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
s: composite_state equivocator_IM
is: state
tr: list transition_item
Htr: finite_valid_trace_from_to equivocators_fixed_equivocations_vlsm is s tr
Hinit: initial_state_prop is
i: index
Hin: is_equivocating_state (IM i) (is i) ∧ i ∈ index_listing

i ∈ equivocating
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
s: composite_state equivocator_IM
is: state
tr: list transition_item
Htr: finite_valid_trace_from_to equivocators_fixed_equivocations_vlsm is s tr
Hinit: initial_state_prop is
i: index
His: is_equivocating_state (IM i) (is i)
Hin: i ∈ index_listing

i ∈ equivocating
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
s: composite_state equivocator_IM
is: state
tr: list transition_item
Htr: finite_valid_trace_from_to equivocators_fixed_equivocations_vlsm is s tr
Hinit: initial_state_prop is
i: index
His: ¬ is_singleton_state (IM i) (is i)
Hin: i ∈ index_listing

i ∈ equivocating
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
s: composite_state equivocator_IM
is: state
tr: list transition_item
Htr: finite_valid_trace_from_to equivocators_fixed_equivocations_vlsm is s tr
Hinit: initial_state_prop is
i: index
Hin: i ∈ index_listing

is_singleton_state (IM i) (is i)
apply Hinit.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
s: composite_state equivocator_IM
is: state
tr: list transition_item
Htr: finite_valid_trace_from_to equivocators_fixed_equivocations_vlsm is s tr
Hinit: initial_state_prop is
His: state_has_fixed_equivocation is

state_has_fixed_equivocation s
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
s: composite_state equivocator_IM
is: state
tr: list transition_item
Htr: finite_valid_trace_from_to equivocators_fixed_equivocations_vlsm is s tr
His: state_has_fixed_equivocation is

state_has_fixed_equivocation s
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
s: state
Hs: valid_state_prop equivocators_fixed_equivocations_vlsm s
His: state_has_fixed_equivocation s

state_has_fixed_equivocation s
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
s, f: state
tl: list transition_item
Htr: finite_valid_trace_from_to equivocators_fixed_equivocations_vlsm s f tl
s': state
iom, oom: option message
l: label
Ht: input_valid_transition equivocators_fixed_equivocations_vlsm l (s', iom) (s, oom)
His: state_has_fixed_equivocation s'
IHHtr: state_has_fixed_equivocation s → state_has_fixed_equivocation f
state_has_fixed_equivocation f
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
s: state
Hs: valid_state_prop equivocators_fixed_equivocations_vlsm s
His: state_has_fixed_equivocation s

state_has_fixed_equivocation s
assumption.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
s, f: state
tl: list transition_item
Htr: finite_valid_trace_from_to equivocators_fixed_equivocations_vlsm s f tl
s': state
iom, oom: option message
l: label
Ht: input_valid_transition equivocators_fixed_equivocations_vlsm l (s', iom) (s, oom)
His: state_has_fixed_equivocation s'
IHHtr: state_has_fixed_equivocation s → state_has_fixed_equivocation f

state_has_fixed_equivocation f
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
s, f: state
tl: list transition_item
Htr: finite_valid_trace_from_to equivocators_fixed_equivocations_vlsm s f tl
s': state
iom, oom: option message
l: label
Ht: input_valid_transition equivocators_fixed_equivocations_vlsm l (s', iom) (s, oom)
His: state_has_fixed_equivocation s'

state_has_fixed_equivocation s
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
s, f: state
tl: list transition_item
Htr: finite_valid_trace_from_to equivocators_fixed_equivocations_vlsm s f tl
s': state
iom, oom: option message
l: label
Hv: state_has_fixed_equivocation (composite_transition equivocator_IM l (s', iom)).1
Ht: transition l (s', iom) = (s, oom)
His: state_has_fixed_equivocation s'

state_has_fixed_equivocation s
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
s, f: state
tl: list transition_item
Htr: finite_valid_trace_from_to equivocators_fixed_equivocations_vlsm s f tl
s': state
iom, oom: option message
l: label
Hv: state_has_fixed_equivocation (s, oom).1
Ht: transition l (s', iom) = (s, oom)
His: state_has_fixed_equivocation s'

state_has_fixed_equivocation s
assumption. Qed.
Inclusion in the free composition.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index

VLSM_incl equivocators_fixed_equivocations_vlsm (free_composite_vlsm equivocator_IM)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index

VLSM_incl equivocators_fixed_equivocations_vlsm (free_composite_vlsm equivocator_IM)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index

input_valid_constraint_subsumption equivocator_IM equivocators_fixed_equivocations_constraint (free_constraint equivocator_IM)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
l: composite_label equivocator_IM
som: (composite_state equivocator_IM * option message)%type
H: input_valid (composite_vlsm equivocator_IM equivocators_fixed_equivocations_constraint) l som

free_constraint equivocator_IM l som
exact I. Qed.
Inclusion into the preloaded free composition.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index

VLSM_incl equivocators_fixed_equivocations_vlsm (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM))
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index

VLSM_incl equivocators_fixed_equivocations_vlsm (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM))
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index

VLSM_incl (mk_vlsm (composite_vlsm_machine equivocator_IM equivocators_fixed_equivocations_constraint)) (mk_vlsm (machine (free_composite_vlsm equivocator_IM)))
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
VLSM_incl (mk_vlsm (machine (free_composite_vlsm equivocator_IM))) (mk_vlsm (pre_loaded_with_all_messages_vlsm_machine (free_composite_vlsm equivocator_IM)))
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index

VLSM_incl (mk_vlsm (composite_vlsm_machine equivocator_IM equivocators_fixed_equivocations_constraint)) (mk_vlsm (machine (free_composite_vlsm equivocator_IM)))
apply equivocators_fixed_equivocations_vlsm_incl_free.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index

VLSM_incl (mk_vlsm (machine (free_composite_vlsm equivocator_IM))) (mk_vlsm (pre_loaded_with_all_messages_vlsm_machine (free_composite_vlsm equivocator_IM)))
apply vlsm_incl_pre_loaded_with_all_messages_vlsm. Qed.
Inclusion of preloaded machine into the preloaded free composition.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index

VLSM_incl (pre_loaded_with_all_messages_vlsm equivocators_fixed_equivocations_vlsm) (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM))
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index

VLSM_incl (pre_loaded_with_all_messages_vlsm equivocators_fixed_equivocations_vlsm) (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM))
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
l: label
s: state
om: option message
H: vvalid (mk_vlsm (composite_vlsm_machine equivocator_IM equivocators_fixed_equivocations_constraint)) l (s, om)

vvalid (mk_vlsm (composite_vlsm_machine equivocator_IM (free_constraint equivocator_IM))) (id l) (id s, om)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
l: label
s: state
om: option message
H: vvalid (mk_vlsm (composite_vlsm_machine equivocator_IM equivocators_fixed_equivocations_constraint)) l (s, om)

composite_valid equivocator_IM (id l) (id s, om)
apply H. Qed.
Inclusion in the composition of equivocators with no message equivocation (no restriction on state equivocation).
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index

VLSM_incl equivocators_fixed_equivocations_vlsm (equivocators_no_equivocations_vlsm IM Hbs)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index

VLSM_incl equivocators_fixed_equivocations_vlsm (equivocators_no_equivocations_vlsm IM Hbs)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index

input_valid_constraint_subsumption (Common.equivocator_IM IM) equivocators_fixed_equivocations_constraint (equivocators_no_equivocations_constraint IM Hbs)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
l: composite_label (Common.equivocator_IM IM)
s: composite_state (Common.equivocator_IM IM)
om: option message
Hv: input_valid (composite_vlsm (Common.equivocator_IM IM) equivocators_fixed_equivocations_constraint) l (s, om)

equivocators_no_equivocations_constraint IM Hbs l (s, om)
apply Hv. Qed. End equivocators_fixed_equivocations_vlsm. Section fixed_equivocation_with_fullnode.
This section instantiates the full_node_condition_for_admissible_equivocators by choosing the admissible indices to be the fixed set of nodes allowed to equivocate, and then shows that this constraint is stronger than the fixed_equivocation_constraint.
Context setting the stage for, and instantiating the full_node_condition_for_admissible_equivocators. It requires that the nodes have has_been_sent and has_been_received capabilities, that the number of nodes is finite
  Context
    {message : Type}
    {index : Type}
    {IndEqDec : EqDecision index}
    (IM : index -> VLSM message)
    (Hbs : forall i : index, HasBeenSentCapability (IM i))
    (Hbr : forall i : index, HasBeenReceivedCapability (IM i))
    (Hbo : forall i : index, HasBeenObservedCapability (IM i) := fun i : index => HasBeenObservedCapability_from_sent_received (IM i))
    (equivocator_IM := equivocator_IM IM)
    (index_listing : list index)
    (finite_index : Listing index_listing)
    (equivocating : set index)
    (admissible_index := fun s i => i ∈ equivocating)
    (full_node_constraint
      := full_node_condition_for_admissible_equivocators IM Hbs Hbr admissible_index)
    (full_node_constraint_alt
      := full_node_condition_for_admissible_equivocators_alt IM Hbs Hbr admissible_index)
    .
Context for the fixed_equivocation_constraint. Additionally to the above it requires that equality on messages is decidable and that the set of VLSMs allowed to equivocate is non-empty.
  Context
    `{EqDecision message}
    (equivocating_index : Type := sub_index equivocating)
    (equivocating_IM := sub_IM IM equivocating)
    (fixed_equivocation_constraint : composite_label IM  -> composite_state IM * option message -> Prop
      := fixed_equivocation_constraint IM Hbs Hbr equivocating)
    (Free := free_composite_vlsm IM)
    (Free_HasBeenSentCapability : HasBeenSentCapability Free := free_composite_HasBeenSentCapability IM finite_index Hbs)
    (Free_HasBeenReceivedCapability : HasBeenReceivedCapability Free := free_composite_HasBeenReceivedCapability IM finite_index Hbr)
    (Free_HasBeenObservedCapability : HasBeenObservedCapability Free := free_composite_HasBeenObservedCapability IM finite_index Hbo)
    .

  Existing Instance Free_HasBeenObservedCapability.
The full_node_constraint_alt is stronger than the fixed_equivocation_constraint.
  
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
admissible_index:= λ (_ : composite_state IM) (i : index), i ∈ equivocating: composite_state IM → index → Prop
full_node_constraint:= full_node_condition_for_admissible_equivocators IM Hbs Hbr admissible_index: composite_label IM → composite_state IM * option message → Prop
full_node_constraint_alt:= full_node_condition_for_admissible_equivocators_alt IM Hbs Hbr admissible_index: composite_label IM → composite_state IM * option message → Prop
EqDecision0: EqDecision message
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
fixed_equivocation_constraint:= FixedSetEquivocation.fixed_equivocation_constraint IM Hbs Hbr equivocating: composite_label IM → composite_state IM * option message → Prop
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free

strong_constraint_subsumption IM full_node_constraint_alt fixed_equivocation_constraint
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
admissible_index:= λ (_ : composite_state IM) (i : index), i ∈ equivocating: composite_state IM → index → Prop
full_node_constraint:= full_node_condition_for_admissible_equivocators IM Hbs Hbr admissible_index: composite_label IM → composite_state IM * option message → Prop
full_node_constraint_alt:= full_node_condition_for_admissible_equivocators_alt IM Hbs Hbr admissible_index: composite_label IM → composite_state IM * option message → Prop
EqDecision0: EqDecision message
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
fixed_equivocation_constraint:= FixedSetEquivocation.fixed_equivocation_constraint IM Hbs Hbr equivocating: composite_label IM → composite_state IM * option message → Prop
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free

strong_constraint_subsumption IM full_node_constraint_alt fixed_equivocation_constraint
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
admissible_index:= λ (_ : composite_state IM) (i : index), i ∈ equivocating: composite_state IM → index → Prop
full_node_constraint:= full_node_condition_for_admissible_equivocators IM Hbs Hbr admissible_index: composite_label IM → composite_state IM * option message → Prop
full_node_constraint_alt:= full_node_condition_for_admissible_equivocators_alt IM Hbs Hbr admissible_index: composite_label IM → composite_state IM * option message → Prop
EqDecision0: EqDecision message
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
fixed_equivocation_constraint:= FixedSetEquivocation.fixed_equivocation_constraint IM Hbs Hbr equivocating: composite_label IM → composite_state IM * option message → Prop
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
l: composite_label IM
s: composite_state IM
m: message
Hc: full_node_constraint_alt l (s, Some m)

fixed_equivocation_constraint l (s, Some m)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
admissible_index:= λ (_ : composite_state IM) (i : index), i ∈ equivocating: composite_state IM → index → Prop
full_node_constraint:= full_node_condition_for_admissible_equivocators IM Hbs Hbr admissible_index: composite_label IM → composite_state IM * option message → Prop
full_node_constraint_alt:= full_node_condition_for_admissible_equivocators_alt IM Hbs Hbr admissible_index: composite_label IM → composite_state IM * option message → Prop
EqDecision0: EqDecision message
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
fixed_equivocation_constraint:= FixedSetEquivocation.fixed_equivocation_constraint IM Hbs Hbr equivocating: composite_label IM → composite_state IM * option message → Prop
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
l: composite_label IM
s: composite_state IM
m: message
i: index
Hi: admissible_index s i
Hm: node_generated_without_further_equivocation_alt IM Hbs Hbr s m i

fixed_equivocation_constraint l (s, Some m)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
admissible_index:= λ (_ : composite_state IM) (i : index), i ∈ equivocating: composite_state IM → index → Prop
full_node_constraint:= full_node_condition_for_admissible_equivocators IM Hbs Hbr admissible_index: composite_label IM → composite_state IM * option message → Prop
full_node_constraint_alt:= full_node_condition_for_admissible_equivocators_alt IM Hbs Hbr admissible_index: composite_label IM → composite_state IM * option message → Prop
EqDecision0: EqDecision message
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
fixed_equivocation_constraint:= FixedSetEquivocation.fixed_equivocation_constraint IM Hbs Hbr equivocating: composite_label IM → composite_state IM * option message → Prop
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
l: composite_label IM
s: composite_state IM
m: message
i: index
Hi: admissible_index s i
Hm: can_emit (pre_loaded_vlsm (IM i) (composite_has_been_observed IM (λ i : index, HasBeenObservedCapability_from_sent_received (IM i)) s)) m

fixed_equivocation_constraint l (s, Some m)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
admissible_index:= λ (_ : composite_state IM) (i : index), i ∈ equivocating: composite_state IM → index → Prop
full_node_constraint:= full_node_condition_for_admissible_equivocators IM Hbs Hbr admissible_index: composite_label IM → composite_state IM * option message → Prop
full_node_constraint_alt:= full_node_condition_for_admissible_equivocators_alt IM Hbs Hbr admissible_index: composite_label IM → composite_state IM * option message → Prop
EqDecision0: EqDecision message
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
fixed_equivocation_constraint:= FixedSetEquivocation.fixed_equivocation_constraint IM Hbs Hbr equivocating: composite_label IM → composite_state IM * option message → Prop
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
l: composite_label IM
s: composite_state IM
m: message
i: index
Hi: admissible_index s i
Hm: can_emit (pre_loaded_vlsm (IM i) (composite_has_been_observed IM (λ i : index, HasBeenObservedCapability_from_sent_received (IM i)) s)) m

can_emit (equivocators_composition_for_observed IM Hbs Hbr equivocating s) m
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
admissible_index:= λ (_ : composite_state IM) (i : index), i ∈ equivocating: composite_state IM → index → Prop
full_node_constraint:= full_node_condition_for_admissible_equivocators IM Hbs Hbr admissible_index: composite_label IM → composite_state IM * option message → Prop
full_node_constraint_alt:= full_node_condition_for_admissible_equivocators_alt IM Hbs Hbr admissible_index: composite_label IM → composite_state IM * option message → Prop
EqDecision0: EqDecision message
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
fixed_equivocation_constraint:= FixedSetEquivocation.fixed_equivocation_constraint IM Hbs Hbr equivocating: composite_label IM → composite_state IM * option message → Prop
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
l: composite_label IM
s: composite_state IM
m: message
i: index
Hi: admissible_index s i
P: message → Prop
HeqP: P = composite_has_been_observed IM (λ i : index, HasBeenObservedCapability_from_sent_received (IM i)) s
Hm: can_emit (pre_loaded_vlsm (IM i) P) m

can_emit (equivocators_composition_for_observed IM Hbs Hbr equivocating s) m
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
admissible_index:= λ (_ : composite_state IM) (i : index), i ∈ equivocating: composite_state IM → index → Prop
full_node_constraint:= full_node_condition_for_admissible_equivocators IM Hbs Hbr admissible_index: composite_label IM → composite_state IM * option message → Prop
full_node_constraint_alt:= full_node_condition_for_admissible_equivocators_alt IM Hbs Hbr admissible_index: composite_label IM → composite_state IM * option message → Prop
EqDecision0: EqDecision message
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
fixed_equivocation_constraint:= FixedSetEquivocation.fixed_equivocation_constraint IM Hbs Hbr equivocating: composite_label IM → composite_state IM * option message → Prop
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
l: composite_label IM
s: composite_state IM
m: message
i: index
Hi: admissible_index s i
P: message → Prop
HeqP: P = composite_has_been_observed IM (λ i : index, HasBeenObservedCapability_from_sent_received (IM i)) s
Hm: can_emit (pre_loaded_vlsm (IM i) P) m
Hemit: ( m : message, P m → P m) → (j : sub_index equivocating) (m : message), can_emit (pre_loaded_vlsm (equivocating_IM j) P) m → can_emit (pre_loaded_vlsm (free_composite_vlsm equivocating_IM) P) m

can_emit (equivocators_composition_for_observed IM Hbs Hbr equivocating s) m
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
admissible_index:= λ (_ : composite_state IM) (i : index), i ∈ equivocating: composite_state IM → index → Prop
full_node_constraint:= full_node_condition_for_admissible_equivocators IM Hbs Hbr admissible_index: composite_label IM → composite_state IM * option message → Prop
full_node_constraint_alt:= full_node_condition_for_admissible_equivocators_alt IM Hbs Hbr admissible_index: composite_label IM → composite_state IM * option message → Prop
EqDecision0: EqDecision message
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
fixed_equivocation_constraint:= FixedSetEquivocation.fixed_equivocation_constraint IM Hbs Hbr equivocating: composite_label IM → composite_state IM * option message → Prop
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
l: composite_label IM
s: composite_state IM
m: message
i: index
Hi: admissible_index s i
P: message → Prop
HeqP: P = composite_has_been_observed IM (λ i : index, HasBeenObservedCapability_from_sent_received (IM i)) s
Hm: can_emit (pre_loaded_vlsm (IM i) P) m
Hemit: ( m : message, P m → P m) → (j : sub_index equivocating) (m : message), can_emit (pre_loaded_vlsm (equivocating_IM j) P) m → can_emit (pre_loaded_vlsm (free_composite_vlsm equivocating_IM) P) m

m : message, P m → P m
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
admissible_index:= λ (_ : composite_state IM) (i : index), i ∈ equivocating: composite_state IM → index → Prop
full_node_constraint:= full_node_condition_for_admissible_equivocators IM Hbs Hbr admissible_index: composite_label IM → composite_state IM * option message → Prop
full_node_constraint_alt:= full_node_condition_for_admissible_equivocators_alt IM Hbs Hbr admissible_index: composite_label IM → composite_state IM * option message → Prop
EqDecision0: EqDecision message
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
fixed_equivocation_constraint:= FixedSetEquivocation.fixed_equivocation_constraint IM Hbs Hbr equivocating: composite_label IM → composite_state IM * option message → Prop
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
l: composite_label IM
s: composite_state IM
m: message
i: index
Hi: admissible_index s i
P: message → Prop
HeqP: P = composite_has_been_observed IM (λ i : index, HasBeenObservedCapability_from_sent_received (IM i)) s
Hm: can_emit (pre_loaded_vlsm (IM i) P) m
Hemit: (j : sub_index equivocating) (m : message), can_emit (pre_loaded_vlsm (equivocating_IM j) P) m → can_emit (pre_loaded_vlsm (free_composite_vlsm equivocating_IM) P) m
can_emit (equivocators_composition_for_observed IM Hbs Hbr equivocating s) m
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
admissible_index:= λ (_ : composite_state IM) (i : index), i ∈ equivocating: composite_state IM → index → Prop
full_node_constraint:= full_node_condition_for_admissible_equivocators IM Hbs Hbr admissible_index: composite_label IM → composite_state IM * option message → Prop
full_node_constraint_alt:= full_node_condition_for_admissible_equivocators_alt IM Hbs Hbr admissible_index: composite_label IM → composite_state IM * option message → Prop
EqDecision0: EqDecision message
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
fixed_equivocation_constraint:= FixedSetEquivocation.fixed_equivocation_constraint IM Hbs Hbr equivocating: composite_label IM → composite_state IM * option message → Prop
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
l: composite_label IM
s: composite_state IM
m: message
i: index
Hi: admissible_index s i
P: message → Prop
HeqP: P = composite_has_been_observed IM (λ i : index, HasBeenObservedCapability_from_sent_received (IM i)) s
Hm: can_emit (pre_loaded_vlsm (IM i) P) m
Hemit: ( m : message, P m → P m) → (j : sub_index equivocating) (m : message), can_emit (pre_loaded_vlsm (equivocating_IM j) P) m → can_emit (pre_loaded_vlsm (free_composite_vlsm equivocating_IM) P) m

m : message, P m → P m
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
admissible_index:= λ (_ : composite_state IM) (i : index), i ∈ equivocating: composite_state IM → index → Prop
full_node_constraint:= full_node_condition_for_admissible_equivocators IM Hbs Hbr admissible_index: composite_label IM → composite_state IM * option message → Prop
full_node_constraint_alt:= full_node_condition_for_admissible_equivocators_alt IM Hbs Hbr admissible_index: composite_label IM → composite_state IM * option message → Prop
EqDecision0: EqDecision message
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
fixed_equivocation_constraint:= FixedSetEquivocation.fixed_equivocation_constraint IM Hbs Hbr equivocating: composite_label IM → composite_state IM * option message → Prop
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
l: composite_label IM
s: composite_state IM
m: message
i: index
Hi: admissible_index s i
P: message → Prop
HeqP: P = composite_has_been_observed IM (λ i : index, HasBeenObservedCapability_from_sent_received (IM i)) s
Hm: can_emit (pre_loaded_vlsm (IM i) P) m
Hemit: ( m : message, P m → P m) → (j : sub_index equivocating) (m : message), can_emit (pre_loaded_vlsm (equivocating_IM j) P) m → can_emit (pre_loaded_vlsm (free_composite_vlsm equivocating_IM) P) m
m0: message

P m0 → P m0
apply id.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
admissible_index:= λ (_ : composite_state IM) (i : index), i ∈ equivocating: composite_state IM → index → Prop
full_node_constraint:= full_node_condition_for_admissible_equivocators IM Hbs Hbr admissible_index: composite_label IM → composite_state IM * option message → Prop
full_node_constraint_alt:= full_node_condition_for_admissible_equivocators_alt IM Hbs Hbr admissible_index: composite_label IM → composite_state IM * option message → Prop
EqDecision0: EqDecision message
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
fixed_equivocation_constraint:= FixedSetEquivocation.fixed_equivocation_constraint IM Hbs Hbr equivocating: composite_label IM → composite_state IM * option message → Prop
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
l: composite_label IM
s: composite_state IM
m: message
i: index
Hi: admissible_index s i
P: message → Prop
HeqP: P = composite_has_been_observed IM (λ i : index, HasBeenObservedCapability_from_sent_received (IM i)) s
Hm: can_emit (pre_loaded_vlsm (IM i) P) m
Hemit: (j : sub_index equivocating) (m : message), can_emit (pre_loaded_vlsm (equivocating_IM j) P) m → can_emit (pre_loaded_vlsm (free_composite_vlsm equivocating_IM) P) m

can_emit (equivocators_composition_for_observed IM Hbs Hbr equivocating s) m
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
admissible_index:= λ (_ : composite_state IM) (i : index), i ∈ equivocating: composite_state IM → index → Prop
full_node_constraint:= full_node_condition_for_admissible_equivocators IM Hbs Hbr admissible_index: composite_label IM → composite_state IM * option message → Prop
full_node_constraint_alt:= full_node_condition_for_admissible_equivocators_alt IM Hbs Hbr admissible_index: composite_label IM → composite_state IM * option message → Prop
EqDecision0: EqDecision message
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
fixed_equivocation_constraint:= FixedSetEquivocation.fixed_equivocation_constraint IM Hbs Hbr equivocating: composite_label IM → composite_state IM * option message → Prop
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
l: composite_label IM
s: composite_state IM
m: message
i: index
Hi: admissible_index s i
P: message → Prop
HeqP: P = composite_has_been_observed IM (λ i : index, HasBeenObservedCapability_from_sent_received (IM i)) s
Hm: can_emit (pre_loaded_vlsm (IM i) P) m
Hemit: can_emit (pre_loaded_vlsm (equivocating_IM (dec_exist (admissible_index s) i Hi)) P) m → can_emit (pre_loaded_vlsm (free_composite_vlsm equivocating_IM) P) m

can_emit (equivocators_composition_for_observed IM Hbs Hbr equivocating s) m
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
admissible_index:= λ (_ : composite_state IM) (i : index), i ∈ equivocating: composite_state IM → index → Prop
full_node_constraint:= full_node_condition_for_admissible_equivocators IM Hbs Hbr admissible_index: composite_label IM → composite_state IM * option message → Prop
full_node_constraint_alt:= full_node_condition_for_admissible_equivocators_alt IM Hbs Hbr admissible_index: composite_label IM → composite_state IM * option message → Prop
EqDecision0: EqDecision message
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
fixed_equivocation_constraint:= FixedSetEquivocation.fixed_equivocation_constraint IM Hbs Hbr equivocating: composite_label IM → composite_state IM * option message → Prop
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
l: composite_label IM
s: composite_state IM
m: message
i: index
Hi: admissible_index s i
Hemit: can_emit (pre_loaded_vlsm (equivocating_IM (dec_exist (admissible_index s) i Hi)) (composite_has_been_observed IM (λ i : index, HasBeenObservedCapability_from_sent_received (IM i)) s)) m → can_emit (pre_loaded_vlsm (free_composite_vlsm equivocating_IM) (composite_has_been_observed IM (λ i : index, HasBeenObservedCapability_from_sent_received (IM i)) s)) m
Hm: can_emit (pre_loaded_vlsm (IM i) (composite_has_been_observed IM (λ i : index, HasBeenObservedCapability_from_sent_received (IM i)) s)) m

can_emit (equivocators_composition_for_observed IM Hbs Hbr equivocating s) m
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
admissible_index:= λ (_ : composite_state IM) (i : index), i ∈ equivocating: composite_state IM → index → Prop
full_node_constraint:= full_node_condition_for_admissible_equivocators IM Hbs Hbr admissible_index: composite_label IM → composite_state IM * option message → Prop
full_node_constraint_alt:= full_node_condition_for_admissible_equivocators_alt IM Hbs Hbr admissible_index: composite_label IM → composite_state IM * option message → Prop
EqDecision0: EqDecision message
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
fixed_equivocation_constraint:= FixedSetEquivocation.fixed_equivocation_constraint IM Hbs Hbr equivocating: composite_label IM → composite_state IM * option message → Prop
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
l: composite_label IM
s: composite_state IM
m: message
i: index
Hi: admissible_index s i
Hemit: can_emit (pre_loaded_vlsm (equivocating_IM (dec_exist (admissible_index s) i Hi)) (composite_has_been_observed IM (λ i : index, HasBeenObservedCapability_from_sent_received (IM i)) s)) m → can_emit (pre_loaded_vlsm (free_composite_vlsm equivocating_IM) (composite_has_been_observed IM (λ i : index, HasBeenObservedCapability_from_sent_received (IM i)) s)) m
Hm: can_emit (pre_loaded_vlsm (IM i) (composite_has_been_observed IM (λ i : index, HasBeenObservedCapability_from_sent_received (IM i)) s)) m

can_emit (pre_loaded_vlsm (equivocating_IM (dec_exist (admissible_index s) i Hi)) (composite_has_been_observed IM (λ i : index, HasBeenObservedCapability_from_sent_received (IM i)) s)) m
assumption. Qed.
If all nodes have the cannot_resend_message_stepwise_property, then the full node constraint is stronger than the fixed_equivocation_constraint.
(by reduction to the result above)
  
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
admissible_index:= λ (_ : composite_state IM) (i : index), i ∈ equivocating: composite_state IM → index → Prop
full_node_constraint:= full_node_condition_for_admissible_equivocators IM Hbs Hbr admissible_index: composite_label IM → composite_state IM * option message → Prop
full_node_constraint_alt:= full_node_condition_for_admissible_equivocators_alt IM Hbs Hbr admissible_index: composite_label IM → composite_state IM * option message → Prop
EqDecision0: EqDecision message
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
fixed_equivocation_constraint:= FixedSetEquivocation.fixed_equivocation_constraint IM Hbs Hbr equivocating: composite_label IM → composite_state IM * option message → Prop
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Hno_resend: i : index, cannot_resend_message_stepwise_prop (IM i)

preloaded_constraint_subsumption IM full_node_constraint fixed_equivocation_constraint
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
admissible_index:= λ (_ : composite_state IM) (i : index), i ∈ equivocating: composite_state IM → index → Prop
full_node_constraint:= full_node_condition_for_admissible_equivocators IM Hbs Hbr admissible_index: composite_label IM → composite_state IM * option message → Prop
full_node_constraint_alt:= full_node_condition_for_admissible_equivocators_alt IM Hbs Hbr admissible_index: composite_label IM → composite_state IM * option message → Prop
EqDecision0: EqDecision message
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
fixed_equivocation_constraint:= FixedSetEquivocation.fixed_equivocation_constraint IM Hbs Hbr equivocating: composite_label IM → composite_state IM * option message → Prop
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Hno_resend: i : index, cannot_resend_message_stepwise_prop (IM i)

preloaded_constraint_subsumption IM full_node_constraint fixed_equivocation_constraint
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
admissible_index:= λ (_ : composite_state IM) (i : index), i ∈ equivocating: composite_state IM → index → Prop
full_node_constraint:= full_node_condition_for_admissible_equivocators IM Hbs Hbr admissible_index: composite_label IM → composite_state IM * option message → Prop
full_node_constraint_alt:= full_node_condition_for_admissible_equivocators_alt IM Hbs Hbr admissible_index: composite_label IM → composite_state IM * option message → Prop
EqDecision0: EqDecision message
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
fixed_equivocation_constraint:= FixedSetEquivocation.fixed_equivocation_constraint IM Hbs Hbr equivocating: composite_label IM → composite_state IM * option message → Prop
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Hno_resend: i : index, cannot_resend_message_stepwise_prop (IM i)
l: composite_label IM
s: state
om: option message
Hv: input_valid (pre_loaded_with_all_messages_vlsm (composite_vlsm IM full_node_constraint)) l (s, om)

fixed_equivocation_constraint l (s, om)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
admissible_index:= λ (_ : composite_state IM) (i : index), i ∈ equivocating: composite_state IM → index → Prop
full_node_constraint:= full_node_condition_for_admissible_equivocators IM Hbs Hbr admissible_index: composite_label IM → composite_state IM * option message → Prop
full_node_constraint_alt:= full_node_condition_for_admissible_equivocators_alt IM Hbs Hbr admissible_index: composite_label IM → composite_state IM * option message → Prop
EqDecision0: EqDecision message
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
fixed_equivocation_constraint:= FixedSetEquivocation.fixed_equivocation_constraint IM Hbs Hbr equivocating: composite_label IM → composite_state IM * option message → Prop
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Hno_resend: i : index, cannot_resend_message_stepwise_prop (IM i)
l: composite_label IM
s: state
om: option message
Hv: input_valid (pre_loaded_with_all_messages_vlsm (composite_vlsm IM full_node_constraint)) l (s, om)

full_node_constraint_alt l (s, om)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
index_listing: list index
finite_index: Listing index_listing
equivocating: set index
admissible_index:= λ (_ : composite_state IM) (i : index), i ∈ equivocating: composite_state IM → index → Prop
full_node_constraint:= full_node_condition_for_admissible_equivocators IM Hbs Hbr admissible_index: composite_label IM → composite_state IM * option message → Prop
full_node_constraint_alt:= full_node_condition_for_admissible_equivocators_alt IM Hbs Hbr admissible_index: composite_label IM → composite_state IM * option message → Prop
EqDecision0: EqDecision message
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
fixed_equivocation_constraint:= FixedSetEquivocation.fixed_equivocation_constraint IM Hbs Hbr equivocating: composite_label IM → composite_state IM * option message → Prop
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Hno_resend: i : index, cannot_resend_message_stepwise_prop (IM i)
l: composite_label IM
s: state
om: option message
Hv: input_valid (pre_loaded_with_all_messages_vlsm (composite_vlsm IM full_node_constraint)) l (s, om)

input_valid (pre_loaded_with_all_messages_vlsm (composite_vlsm IM (full_node_condition_for_admissible_equivocators IM Hbs Hbr admissible_index))) l (s, om)
assumption. Qed. End fixed_equivocation_with_fullnode. Section from_equivocators_to_nodes.

From composition of equivocators to composition of simple nodes

In this section we show that the projection of valid_traces of a composition of equivocators with a fixed equivocation constraint are valid_traces for the composition of nodes with a similar fixed equivocation constraint.
Context
  {message : Type}
  `{EqDecision message}
  {index : Type}
  {IndEqDec : EqDecision index}
  (IM : index -> VLSM message)
  (Hbs : forall i : index, HasBeenSentCapability (IM i))
  (Hbr : forall i : index, HasBeenReceivedCapability (IM i))
  (Hbo : forall i : index, HasBeenObservedCapability (IM i)
    := fun i => HasBeenObservedCapability_from_sent_received (IM i))
  (equivocating : set index)
  {index_listing : list index}
  (finite_index : Listing index_listing)
  (XE : VLSM message := equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating)
  (X : VLSM message := fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating)
  (equivocators_free_Hbs := free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs))
  (FreeE : VLSM message := free_composite_vlsm (equivocator_IM IM))
  (FreeE_HasBeenSentCapability : HasBeenSentCapability FreeE := free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs))
  (Hdec_init : forall i, vdecidable_initial_messages_prop (IM i))
  (Free := free_composite_vlsm IM)
  (Free_HasBeenSentCapability : HasBeenSentCapability Free := free_composite_HasBeenSentCapability IM finite_index Hbs)
  (Free_HasBeenReceivedCapability : HasBeenReceivedCapability Free := free_composite_HasBeenReceivedCapability IM finite_index Hbr)
  (Free_HasBeenObservedCapability : HasBeenObservedCapability Free := free_composite_HasBeenObservedCapability IM finite_index Hbo)
  (Free_no_additional_equivocation_decidable := no_additional_equivocations_dec Free)
  (index_equivocating_prop : index -> Prop := sub_index_prop equivocating)
  (equivocating_index : Type := sub_index equivocating)
  (equivocating_IM := sub_IM IM equivocating)
  (free_equivocating_vlsm_composition : VLSM message := free_composite_vlsm equivocating_IM)
  (sub_equivocator_IM := sub_IM (equivocator_IM IM) equivocating)
  .
proper_equivocator_descriptors strengthen for fixed-equivocation. We require that if the index is not equivocating, than the corresponding descriptor is a zero_descriptor.
Definition proper_fixed_equivocator_descriptors
  (eqv_descriptors : equivocator_descriptors IM)
  (s : state)
  : Prop
  := proper_equivocator_descriptors IM eqv_descriptors s /\
    forall i, i ∉ equivocating -> eqv_descriptors i = Existing 0.
not_equivocating_equivocator_descriptors satisfy the proper_fixed_equivocator_descriptors property.
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
Hs: valid_state_prop XE s
eqv_descriptors: equivocator_descriptors IM
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors s

proper_fixed_equivocator_descriptors eqv_descriptors s
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
Hs: valid_state_prop XE s
eqv_descriptors: equivocator_descriptors IM
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors s

proper_fixed_equivocator_descriptors eqv_descriptors s
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
Hs: valid_state_prop XE s
eqv_descriptors: equivocator_descriptors IM
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors s
Hproper: proper_equivocator_descriptors IM eqv_descriptors s

proper_fixed_equivocator_descriptors eqv_descriptors s
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
Hs: valid_state_prop XE s
eqv_descriptors: equivocator_descriptors IM
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors s
Hproper: proper_equivocator_descriptors IM eqv_descriptors s

i : index, i ∉ equivocating → eqv_descriptors i = Existing 0
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
Hs: valid_state_prop XE s
eqv_descriptors: equivocator_descriptors IM
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors s
Hproper: proper_equivocator_descriptors IM eqv_descriptors s
i: index
Hi: i ∉ equivocating

eqv_descriptors i = Existing 0
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
Hs: valid_state_prop XE s
eqv_descriptors: equivocator_descriptors IM
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors s
Hproper: proper_equivocator_descriptors IM eqv_descriptors s
i: index
Hi: i ∉ equivocating
Hzero: is_singleton_state (IM i) (s i)

eqv_descriptors i = Existing 0
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
Hs: valid_state_prop XE s
eqv_descriptors: equivocator_descriptors IM
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors s
Hproper: proper_equivocator_descriptors IM eqv_descriptors s
i: index
Hi: i ∉ equivocating
Hzero: equivocator_state_n (s i) = 1

eqv_descriptors i = Existing 0
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
Hs: valid_state_prop XE s
eqv_descriptors: equivocator_descriptors IM
i: index
Heqv_descriptors: existing_descriptor (IM i) (eqv_descriptors i) (s i)
Hproper: proper_equivocator_descriptors IM eqv_descriptors s
Hi: i ∉ equivocating
Hzero: equivocator_state_n (s i) = 1

eqv_descriptors i = Existing 0
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
Hs: valid_state_prop XE s
eqv_descriptors: equivocator_descriptors IM
i: index
Heqv_descriptors: match eqv_descriptors i with | NewMachine _ => False | Existing i0 => is_Some (equivocator_state_project (s i) i0) end
Hproper: proper_equivocator_descriptors IM eqv_descriptors s
Hi: i ∉ equivocating
Hzero: equivocator_state_n (s i) = 1

eqv_descriptors i = Existing 0
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
Hs: valid_state_prop XE s
eqv_descriptors: equivocator_descriptors IM
i: index
n: nat
Heqv_descriptors: is_Some (equivocator_state_project (s i) n)
Hproper: proper_equivocator_descriptors IM eqv_descriptors s
Hi: i ∉ equivocating
Hzero: equivocator_state_n (s i) = 1

Existing n = Existing 0
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
Hs: valid_state_prop XE s
eqv_descriptors: equivocator_descriptors IM
i: index
n: nat
s_i_n: vstate (IM i)
Heqv_descriptors: equivocator_state_project (s i) n = Some s_i_n
Hproper: proper_equivocator_descriptors IM eqv_descriptors s
Hi: i ∉ equivocating
Hzero: equivocator_state_n (s i) = 1

Existing n = Existing 0
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
Hs: valid_state_prop XE s
eqv_descriptors: equivocator_descriptors IM
i: index
n: nat
s_i_n: vstate (IM i)
Heqv_descriptors: n < equivocator_state_n (s i)
Hproper: proper_equivocator_descriptors IM eqv_descriptors s
Hi: i ∉ equivocating
Hzero: equivocator_state_n (s i) = 1

Existing n = Existing 0
f_equal; lia. Qed.
Projections of (valid) traces of the composition of equivocators preserve proper_fixed_equivocator_descriptors.
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is tr
s:= finite_trace_last is tr: state
descriptors, idescriptors: equivocator_descriptors IM
trX: list (composite_transition_item IM)
HtrX: equivocators_trace_project IM descriptors tr = Some (trX, idescriptors)

proper_fixed_equivocator_descriptors descriptors s → proper_fixed_equivocator_descriptors idescriptors is
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is tr
s:= finite_trace_last is tr: state
descriptors, idescriptors: equivocator_descriptors IM
trX: list (composite_transition_item IM)
HtrX: equivocators_trace_project IM descriptors tr = Some (trX, idescriptors)

proper_fixed_equivocator_descriptors descriptors s → proper_fixed_equivocator_descriptors idescriptors is
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is tr
s:= finite_trace_last is tr: state
descriptors, idescriptors: equivocator_descriptors IM
trX: list (composite_transition_item IM)
HtrX: equivocators_trace_project IM descriptors tr = Some (trX, idescriptors)
Hproper: proper_equivocator_descriptors IM descriptors s
Hfixed: i : index, i ∉ equivocating → descriptors i = Existing 0

proper_fixed_equivocator_descriptors idescriptors is
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is tr
s:= finite_trace_last is tr: state
descriptors, idescriptors: equivocator_descriptors IM
trX: list (composite_transition_item IM)
HtrX: equivocators_trace_project IM descriptors tr = Some (trX, idescriptors)
Hproper: proper_equivocator_descriptors IM descriptors s
Hfixed: i : index, i ∉ equivocating → descriptors i = Existing 0
Hiproper: proper_equivocator_descriptors IM idescriptors is

proper_fixed_equivocator_descriptors idescriptors is
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is tr
s:= finite_trace_last is tr: state
descriptors, idescriptors: equivocator_descriptors IM
trX: list (composite_transition_item IM)
HtrX: equivocators_trace_project IM descriptors tr = Some (trX, idescriptors)
Hproper: proper_equivocator_descriptors IM descriptors s
Hfixed: i : index, i ∉ equivocating → descriptors i = Existing 0
Hiproper: proper_equivocator_descriptors IM idescriptors is

i : index, i ∉ equivocating → idescriptors i = Existing 0
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is tr
s:= finite_trace_last is tr: state
descriptors, idescriptors: equivocator_descriptors IM
trX: list (composite_transition_item IM)
HtrX: equivocators_trace_project IM descriptors tr = Some (trX, idescriptors)
Hproper: proper_equivocator_descriptors IM descriptors s
Hfixed: i : index, i ∉ equivocating → descriptors i = Existing 0
Hiproper: proper_equivocator_descriptors IM idescriptors is
i: index
Hi: i ∉ equivocating

idescriptors i = Existing 0
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is tr
s:= finite_trace_last is tr: state
descriptors, idescriptors: equivocator_descriptors IM
trX: list (composite_transition_item IM)
HtrX: equivocators_trace_project IM descriptors tr = Some (trX, idescriptors)
Hproper: proper_equivocator_descriptors IM descriptors s
i: index
Hfixed: descriptors i = Existing 0
Hiproper: proper_equivocator_descriptors IM idescriptors is
Hi: i ∉ equivocating

idescriptors i = Existing 0
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is tr
s:= finite_trace_last is tr: state
descriptors, idescriptors: equivocator_descriptors IM
trX: list (composite_transition_item IM)
HtrX: equivocators_trace_project IM descriptors tr = Some (trX, idescriptors)
Hproper: proper_equivocator_descriptors IM descriptors s
i: index
Hiproper: proper_equivocator_descriptors IM idescriptors is
Hi: i ∉ equivocating

descriptors i = Existing 0 → idescriptors i = Existing 0
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is tr
s:= finite_trace_last is tr: state
descriptors, idescriptors: equivocator_descriptors IM
trX: list (composite_transition_item IM)
HtrX: equivocators_trace_project IM descriptors tr = Some (trX, idescriptors)
Hproper: proper_equivocator_descriptors IM descriptors s
i: index
Hiproper: proper_equivocator_descriptors IM idescriptors is

descriptors i = Existing 0 → idescriptors i = Existing 0
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is tr
s:= finite_trace_last is tr: state
descriptors, idescriptors: equivocator_descriptors IM
trX: list (composite_transition_item IM)
HtrX: equivocators_trace_project IM descriptors tr = Some (trX, idescriptors)
Hproper: proper_equivocator_descriptors IM descriptors s
Hiproper: proper_equivocator_descriptors IM idescriptors is

i : index, descriptors i = Existing 0 → idescriptors i = Existing 0
apply (equivocators_trace_project_preserves_zero_descriptors IM) with is tr trX ; assumption. Qed. Existing Instance equivocators_free_Hbs.
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
es: vstate XE
Hes: vinitial_state_prop XE es
eqv_descriptors: equivocator_descriptors IM
Heqv: proper_equivocator_descriptors IM eqv_descriptors es

vinitial_state_prop X (equivocators_state_project IM eqv_descriptors es)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
es: vstate XE
Hes: vinitial_state_prop XE es
eqv_descriptors: equivocator_descriptors IM
Heqv: proper_equivocator_descriptors IM eqv_descriptors es

vinitial_state_prop X (equivocators_state_project IM eqv_descriptors es)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
es: vstate XE
Hes: vinitial_state_prop XE es
eqv_descriptors: equivocator_descriptors IM
Heqv: proper_equivocator_descriptors IM eqv_descriptors es
eqv: index

vinitial_state_prop (IM eqv) (equivocators_state_project IM eqv_descriptors es eqv)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
es: vstate XE
eqv: index
Hes: vinitial_state_prop (equivocator_IM IM eqv) (es eqv)
eqv_descriptors: equivocator_descriptors IM
Heqv: proper_equivocator_descriptors IM eqv_descriptors es

vinitial_state_prop (IM eqv) (equivocators_state_project IM eqv_descriptors es eqv)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
es: vstate XE
eqv: index
Hes: vinitial_state_prop (equivocator_vlsm (IM eqv)) (es eqv)
eqv_descriptors: equivocator_descriptors IM
Heqv: proper_equivocator_descriptors IM eqv_descriptors es

vinitial_state_prop (IM eqv) (equivocators_state_project IM eqv_descriptors es eqv)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
es: vstate XE
eqv: index
Hes: vinitial_state_prop (equivocator_vlsm (IM eqv)) (es eqv)
eqv_descriptors: equivocator_descriptors IM
Heqv: proper_equivocator_descriptors IM eqv_descriptors es

vinitial_state_prop (IM eqv) (equivocator_state_descriptor_project (es eqv) (eqv_descriptors eqv))
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
es: vstate XE
eqv: index
Hes: vinitial_state_prop (equivocator_vlsm (IM eqv)) (es eqv)
eqv_descriptors: equivocator_descriptors IM
Heqv: proper_descriptor (IM eqv) (eqv_descriptors eqv) (es eqv)

vinitial_state_prop (IM eqv) (equivocator_state_descriptor_project (es eqv) (eqv_descriptors eqv))
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
es: vstate XE
eqv: index
Hes: vinitial_state_prop (equivocator_vlsm (IM eqv)) (es eqv)
eqv_descriptors: equivocator_descriptors IM
i: nat
Heqv: proper_descriptor (IM eqv) (Existing i) (es eqv)

vinitial_state_prop (IM eqv) (equivocator_state_descriptor_project (es eqv) (Existing i))
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
es: vstate XE
eqv: index
Hes: vinitial_state_prop (equivocator_vlsm (IM eqv)) (es eqv)
eqv_descriptors: equivocator_descriptors IM
i: nat
esi: vstate (IM eqv)
Heqsi: equivocator_state_project (es eqv) i = Some esi

vinitial_state_prop (IM eqv) (equivocator_state_descriptor_project (es eqv) (Existing i))
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
es: vstate XE
eqv: index
Hes: vinitial_state_prop (equivocator_vlsm (IM eqv)) (es eqv)
eqv_descriptors: equivocator_descriptors IM
i: nat
esi: vstate (IM eqv)
Heqsi: equivocator_state_project (es eqv) i = Some esi

vinitial_state_prop (IM eqv) (default (equivocator_state_zero (es eqv)) (equivocator_state_project (es eqv) i))
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
es: vstate XE
eqv: index
Hes: vinitial_state_prop (equivocator_vlsm (IM eqv)) (es eqv)
eqv_descriptors: equivocator_descriptors IM
i: nat
esi: vstate (IM eqv)
Heqsi: equivocator_state_project (es eqv) i = Some esi

vinitial_state_prop (IM eqv) (default (equivocator_state_zero (es eqv)) (Some esi))
apply equivocator_vlsm_initial_state_preservation_rev with (es eqv) i; assumption. Qed. Existing Instance Free_HasBeenObservedCapability. Existing Instance Free_HasBeenSentCapability.
This is a property of the fixed_equivocation_constraint which also trivially holds for the free constraint. This property is sufficient for proving the _equivocators_valid_trace_project lemma, which lets that lemma be used for both the composition of equivocators with fixed state-equivocation and the free composition.
It basically says that if a message has_been_sent for a state of the composition of equivocators with no-message equivocations and fixed state-equivocations, then any of its projections should be allowed to receive it.
Definition constraint_has_been_sent_prop
  (constraint : composite_label IM -> composite_state IM * option message -> Prop)
  : Prop :=
  forall
    (s : composite_state (equivocator_IM IM))
    (Hs : valid_state_prop XE s)
    (descriptors : equivocator_descriptors IM)
    (Hdescriptors : proper_fixed_equivocator_descriptors descriptors s)
    (sX := @equivocators_state_project _ _ IndEqDec IM descriptors s)
    (m: message)
    (Hm : has_been_sent FreeE s m)
    l,
  constraint l (sX, Some m).
Generic proof that the projection of a trace of the composition of equivocators with no message equivocation and fixed state equivocation is valid w.r.t. the composition of the regular nodes constrained by any constraint satisfying several properties, including the constraint_has_been_sent_property.
The proof proceeds by well founded induction on the length of the trace, performing an analysis on the final transition item of the trace.
It uses the fact that the trace hase no message equivocation to extract a subtrace producing the message being received at the last transition and proves that it's a valid message for the destination machine by using the induction hypothesis (that is why well-founded induction is used rather than a simpler induction principle).
The constraint satisfaction for the projection of the final transition is for now assumes as hypothesis Hconstraint_hbs.
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
final_descriptors: equivocator_descriptors IM
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
final_state:= finite_trace_last is tr: state
Hproper: proper_fixed_equivocator_descriptors final_descriptors final_state
Htr: finite_valid_trace XE is tr
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
final_descriptors: equivocator_descriptors IM
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
final_state:= finite_trace_last is tr: state
Hproper: proper_fixed_equivocator_descriptors final_descriptors final_state
Htr: finite_valid_trace XE is tr
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
final_descriptors: equivocator_descriptors IM
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
final_state:= finite_trace_last is tr: state
Hproper: proper_fixed_equivocator_descriptors final_descriptors final_state
Htr: finite_valid_trace XE is tr
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
len_tr: nat
Heqlen_tr: len_tr = length tr

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
final_state:= finite_trace_last is tr: state
Htr: finite_valid_trace XE is tr
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
len_tr: nat
Heqlen_tr: len_tr = length tr

final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
len_tr: nat

tr : list (composite_transition_item (equivocator_IM IM)), let final_state := finite_trace_last is tr in finite_valid_trace XE is tr → len_tr = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
len_tr: nat
H: y : nat, y < len_tr → tr : list (composite_transition_item (equivocator_IM IM)), let final_state := finite_trace_last is tr in finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
tr: list (composite_transition_item (equivocator_IM IM))
final_state:= finite_trace_last is tr: state
Htr: finite_valid_trace XE is tr
Heqlen_tr: len_tr = length tr
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors final_state

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr: list (composite_transition_item (equivocator_IM IM))
H: y : nat, y < length tr → tr : list (composite_transition_item (equivocator_IM IM)), let final_state := finite_trace_last is tr in finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
final_state:= finite_trace_last is tr: state
Htr: finite_valid_trace XE is tr
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors final_state

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr: list (composite_transition_item (equivocator_IM IM))
H: y : nat, y < length [] → tr : list (composite_transition_item (equivocator_IM IM)), let final_state := finite_trace_last is tr in finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
final_state:= finite_trace_last is tr: state
Htr: finite_valid_trace XE is []
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors final_state
Htr_lst: tr = []

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors [] = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
lst: composite_transition_item (equivocator_IM IM)
H: y : nat, y < length (tr' ++ [lst]) → tr : list (composite_transition_item (equivocator_IM IM)), let final_state := finite_trace_last is tr in finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
final_state:= finite_trace_last is tr: state
Htr: finite_valid_trace XE is (tr' ++ [lst])
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors final_state
Htr_lst: tr = tr' ++ [lst]
(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors (tr' ++ [lst]) = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr: list (composite_transition_item (equivocator_IM IM))
H: y : nat, y < length [] → tr : list (composite_transition_item (equivocator_IM IM)), let final_state := finite_trace_last is tr in finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
final_state:= finite_trace_last is tr: state
Htr: finite_valid_trace XE is []
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors final_state
Htr_lst: tr = []

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors [] = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr: list (composite_transition_item (equivocator_IM IM))
final_state:= finite_trace_last is tr: state
Htr: finite_valid_trace XE is []
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors final_state
Htr_lst: tr = []

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors [] = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
final_state:= finite_trace_last is []: state
Htr: finite_valid_trace XE is []
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors final_state

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors [] = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
final_state:= finite_trace_last is []: state
Htr: finite_valid_trace XE is []
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is [])

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors [] = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is []) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
final_state:= finite_trace_last is []: state
Htr: finite_valid_trace XE is []
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is [])

proper_fixed_equivocator_descriptors final_descriptors is ∧ equivocators_trace_project IM final_descriptors [] = Some ([], final_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is []) = finite_trace_last (equivocators_state_project IM final_descriptors is) [] ∧ finite_valid_trace X' (equivocators_state_project IM final_descriptors is) []
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
final_state:= finite_trace_last is []: state
Htr: finite_valid_trace XE is []
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is [])

equivocators_trace_project IM final_descriptors [] = Some ([], final_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is []) = finite_trace_last (equivocators_state_project IM final_descriptors is) [] ∧ finite_valid_trace X' (equivocators_state_project IM final_descriptors is) []
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
final_state:= finite_trace_last is []: state
Htr: finite_valid_trace XE is []
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is [])

equivocators_state_project IM final_descriptors (finite_trace_last is []) = finite_trace_last (equivocators_state_project IM final_descriptors is) [] ∧ finite_valid_trace X' (equivocators_state_project IM final_descriptors is) []
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
final_state:= finite_trace_last is []: state
Htr: finite_valid_trace XE is []
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is [])

finite_valid_trace X' (equivocators_state_project IM final_descriptors is) []
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
final_state:= finite_trace_last is []: state
Htr: finite_valid_trace XE is []
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is [])
isx: vstate (free_composite_vlsm IM)
Heqisx: isx = equivocators_state_project IM final_descriptors is

finite_valid_trace X' isx []
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
final_state:= finite_trace_last is []: state
Htr: finite_valid_trace XE is []
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is [])
isx: vstate (free_composite_vlsm IM)
Heqisx: isx = equivocators_state_project IM final_descriptors is

vinitial_state_prop X' isx → finite_valid_trace X' isx []
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
final_state:= finite_trace_last is []: state
Htr: finite_valid_trace XE is []
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is [])
isx: vstate (free_composite_vlsm IM)
Heqisx: isx = equivocators_state_project IM final_descriptors is
vinitial_state_prop X' isx
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
final_state:= finite_trace_last is []: state
Htr: finite_valid_trace XE is []
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is [])
isx: vstate (free_composite_vlsm IM)
Heqisx: isx = equivocators_state_project IM final_descriptors is

vinitial_state_prop X' isx → finite_valid_trace X' isx []
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
final_state:= finite_trace_last is []: state
Htr: finite_valid_trace XE is []
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is [])
isx: vstate (free_composite_vlsm IM)
Heqisx: isx = equivocators_state_project IM final_descriptors is
H: vinitial_state_prop X' isx

finite_valid_trace X' isx []
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
final_state:= finite_trace_last is []: state
Htr: finite_valid_trace XE is []
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is [])
isx: vstate (free_composite_vlsm IM)
Heqisx: isx = equivocators_state_project IM final_descriptors is
H: vinitial_state_prop X' isx

finite_valid_trace_from X' isx []
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
final_state:= finite_trace_last is []: state
Htr: finite_valid_trace XE is []
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is [])
isx: vstate (free_composite_vlsm IM)
Heqisx: isx = equivocators_state_project IM final_descriptors is
H: vinitial_state_prop X' isx

valid_state_prop X' isx
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
final_state:= finite_trace_last is []: state
Htr: finite_valid_trace XE is []
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is [])
isx: vstate (free_composite_vlsm IM)
Heqisx: isx = equivocators_state_project IM final_descriptors is
H: vinitial_state_prop X' isx

( is : initial_state, isx = `is) ∨ ( (l : label) (som : state * option message) (om' : option message), input_valid_transition X' l som (isx, om'))
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
final_state:= finite_trace_last is []: state
Htr: finite_valid_trace XE is []
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is [])
isx: vstate (free_composite_vlsm IM)
Heqisx: isx = equivocators_state_project IM final_descriptors is
H: vinitial_state_prop X' isx

is : initial_state, isx = `is
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
final_state:= finite_trace_last is []: state
Htr: finite_valid_trace XE is []
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is [])
isx: vstate (free_composite_vlsm IM)
Heqisx: isx = equivocators_state_project IM final_descriptors is
H: vinitial_state_prop X' isx

isx = `(isx ↾ H)
reflexivity.
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
final_state:= finite_trace_last is []: state
Htr: finite_valid_trace XE is []
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is [])
isx: vstate (free_composite_vlsm IM)
Heqisx: isx = equivocators_state_project IM final_descriptors is

vinitial_state_prop X' isx
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
final_state:= finite_trace_last is []: state
Htr: finite_valid_trace XE is []
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is [])

vinitial_state_prop X' (equivocators_state_project IM final_descriptors is)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
final_state:= finite_trace_last is []: state
Htr: finite_valid_trace XE is []
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is [])

vinitial_state_prop XE is
apply Htr.
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
lst: composite_transition_item (equivocator_IM IM)
H: y : nat, y < length (tr' ++ [lst]) → tr : list (composite_transition_item (equivocator_IM IM)), let final_state := finite_trace_last is tr in finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
final_state:= finite_trace_last is tr: state
Htr: finite_valid_trace XE is (tr' ++ [lst])
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors final_state
Htr_lst: tr = tr' ++ [lst]

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors (tr' ++ [lst]) = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
lst: composite_transition_item (equivocator_IM IM)
H: y : nat, y < length (tr' ++ [lst]) → tr : list (composite_transition_item (equivocator_IM IM)), let final_state := finite_trace_last is tr in finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
final_state:= finite_trace_last is tr: state
Htr: finite_valid_trace XE is (tr' ++ [lst])
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors final_state
Htr_lst: tr = tr' ++ [lst]
H': length tr' < length (tr' ++ [lst]) → tr : list (composite_transition_item (equivocator_IM IM)), let final_state := finite_trace_last is tr in finite_valid_trace XE is tr → length tr' = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors (tr' ++ [lst]) = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
lst: composite_transition_item (equivocator_IM IM)
H: y : nat, y < length (tr' ++ [lst]) → tr : list (composite_transition_item (equivocator_IM IM)), let final_state := finite_trace_last is tr in finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
final_state:= finite_trace_last is tr: state
Htr: finite_valid_trace XE is (tr' ++ [lst])
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors final_state
Htr_lst: tr = tr' ++ [lst]
H': length tr' < length (tr' ++ [lst]) → tr : list (composite_transition_item (equivocator_IM IM)), let final_state := finite_trace_last is tr in finite_valid_trace XE is tr → length tr' = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX

length tr' < length (tr' ++ [lst])
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
lst: composite_transition_item (equivocator_IM IM)
H: y : nat, y < length (tr' ++ [lst]) → tr : list (composite_transition_item (equivocator_IM IM)), let final_state := finite_trace_last is tr in finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
final_state:= finite_trace_last is tr: state
Htr: finite_valid_trace XE is (tr' ++ [lst])
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors final_state
Htr_lst: tr = tr' ++ [lst]
H': tr : list (composite_transition_item (equivocator_IM IM)), let final_state := finite_trace_last is tr in finite_valid_trace XE is tr → length tr' = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors (tr' ++ [lst]) = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
lst: composite_transition_item (equivocator_IM IM)
H: y : nat, y < length (tr' ++ [lst]) → tr : list (composite_transition_item (equivocator_IM IM)), let final_state := finite_trace_last is tr in finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
final_state:= finite_trace_last is tr: state
Htr: finite_valid_trace XE is (tr' ++ [lst])
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors final_state
Htr_lst: tr = tr' ++ [lst]
H': length tr' < length (tr' ++ [lst]) → tr : list (composite_transition_item (equivocator_IM IM)), let final_state := finite_trace_last is tr in finite_valid_trace XE is tr → length tr' = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX

length tr' < length (tr' ++ [lst])
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
lst: composite_transition_item (equivocator_IM IM)
H: y : nat, y < length (tr' ++ [lst]) → tr : list (composite_transition_item (equivocator_IM IM)), let final_state := finite_trace_last is tr in finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
final_state:= finite_trace_last is tr: state
Htr: finite_valid_trace XE is (tr' ++ [lst])
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors final_state
Htr_lst: tr = tr' ++ [lst]
H': length tr' < length (tr' ++ [lst]) → tr : list (composite_transition_item (equivocator_IM IM)), let final_state := finite_trace_last is tr in finite_valid_trace XE is tr → length tr' = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX

length tr' < length tr' + length [lst]
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
lst: composite_transition_item (equivocator_IM IM)
H: y : nat, y < length (tr' ++ [lst]) → tr : list (composite_transition_item (equivocator_IM IM)), let final_state := finite_trace_last is tr in finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
final_state:= finite_trace_last is tr: state
Htr: finite_valid_trace XE is (tr' ++ [lst])
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors final_state
Htr_lst: tr = tr' ++ [lst]
H': length tr' < length (tr' ++ [lst]) → tr : list (composite_transition_item (equivocator_IM IM)), let final_state := finite_trace_last is tr in finite_valid_trace XE is tr → length tr' = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX

length tr' < length tr' + 1
lia.
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
lst: composite_transition_item (equivocator_IM IM)
H: y : nat, y < length (tr' ++ [lst]) → tr : list (composite_transition_item (equivocator_IM IM)), let final_state := finite_trace_last is tr in finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
final_state:= finite_trace_last is tr: state
Htr: finite_valid_trace XE is (tr' ++ [lst])
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors final_state
Htr_lst: tr = tr' ++ [lst]
H': tr : list (composite_transition_item (equivocator_IM IM)), let final_state := finite_trace_last is tr in finite_valid_trace XE is tr → length tr' = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors (tr' ++ [lst]) = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
lst: composite_transition_item (equivocator_IM IM)
H: y : nat, y < length (tr' ++ [lst]) → tr : list (composite_transition_item (equivocator_IM IM)), let final_state := finite_trace_last is tr in finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
final_state:= finite_trace_last is tr: state
Htr: finite_valid_trace_from XE is (tr' ++ [lst])
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors final_state
Htr_lst: tr = tr' ++ [lst]
H': tr : list (composite_transition_item (equivocator_IM IM)), let final_state := finite_trace_last is tr in finite_valid_trace XE is tr → length tr' = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors (tr' ++ [lst]) = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
lst: composite_transition_item (equivocator_IM IM)
H: y : nat, y < length (tr' ++ [lst]) → tr : list (composite_transition_item (equivocator_IM IM)), let final_state := finite_trace_last is tr in finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
final_state:= finite_trace_last is tr: state
Htr: finite_valid_trace_from XE is tr' ∧ finite_valid_trace_from XE (finite_trace_last is tr') [lst]
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors final_state
Htr_lst: tr = tr' ++ [lst]
H': tr : list (composite_transition_item (equivocator_IM IM)), let final_state := finite_trace_last is tr in finite_valid_trace XE is tr → length tr' = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors (tr' ++ [lst]) = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
lst: composite_transition_item (equivocator_IM IM)
H: y : nat, y < length (tr' ++ [lst]) → tr : list (composite_transition_item (equivocator_IM IM)), let final_state := finite_trace_last is tr in finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
final_state:= finite_trace_last is tr: state
Htr: finite_valid_trace_from XE is tr'
Hlst: finite_valid_trace_from XE (finite_trace_last is tr') [lst]
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors final_state
Htr_lst: tr = tr' ++ [lst]
H': tr : list (composite_transition_item (equivocator_IM IM)), let final_state := finite_trace_last is tr in finite_valid_trace XE is tr → length tr' = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors (tr' ++ [lst]) = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
lst: composite_transition_item (equivocator_IM IM)
H: y : nat, y < length (tr' ++ [lst]) → tr : list (composite_transition_item (equivocator_IM IM)), let final_state := finite_trace_last is tr in finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
final_state:= finite_trace_last is tr: state
Htr: finite_valid_trace_from XE is tr'
Hlst: finite_valid_trace_from XE (finite_trace_last is tr') [lst]
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors final_state
Htr_lst: tr = tr' ++ [lst]
H': final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr') → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr') = final_stateX ∧ finite_valid_trace X' isX trX

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors (tr' ++ [lst]) = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
lst: composite_transition_item (equivocator_IM IM)
H: y : nat, y < length (tr' ++ [lst]) → tr : list (composite_transition_item (equivocator_IM IM)), let final_state := finite_trace_last is tr in finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
final_state:= finite_trace_last is tr: state
Htr: finite_valid_trace_from XE is tr'
Hlst: finite_valid_trace_from XE (finite_trace_last is tr') [lst]
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors final_state
Htr_lst: tr = tr' ++ [lst]
H': final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr') → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr') = final_stateX ∧ finite_valid_trace X' isX trX
Hproperx: proper_equivocator_descriptors IM final_descriptors (destination lst) → (oitem : option (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors IM), equivocators_transition_item_project IM final_descriptors lst = Some (oitem, eqv_descriptors') ∧ match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 (l lst))) (projT2 (l lst)), existT (projT1 (l lst)) (existing_equivocator_label_extract (IM (projT1 (l lst))) (projT2 (l lst)) Hex) = l itemx) ∧ input lst = input itemx ∧ output lst = output itemx ∧ equivocators_state_project IM final_descriptors (destination lst) = destination itemx ∧ eqv_descriptors' (projT1 (l lst)) = equivocator_label_descriptor (projT2 (l lst)) | None => True end ∧ ( s : composite_state (equivocator_IM IM), composite_valid (equivocator_IM IM) (l lst) (s, input lst) → composite_transition (equivocator_IM IM) (l lst) (s, input lst) = (destination lst, output lst) → proper_equivocator_descriptors IM eqv_descriptors' s ∧ eqv_descriptors' = equivocator_descriptors_update IM final_descriptors (projT1 (l lst)) (eqv_descriptors' (projT1 (l lst))) ∧ s = state_update (equivocator_IM IM) (destination lst) (projT1 (l lst)) (s (projT1 (l lst))) ∧ previous_state_descriptor_prop (IM (projT1 (l lst))) (final_descriptors (projT1 (l lst))) (s (projT1 (l lst))) (eqv_descriptors' (projT1 (l lst))) ∧ match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM eqv_descriptors' s → composite_valid IM (l itemx) (sx, input itemx) ∧ composite_transition IM (l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors (destination lst) = equivocators_state_project IM eqv_descriptors' s end)

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors (tr' ++ [lst]) = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
lst: composite_transition_item (equivocator_IM IM)
H: y : nat, y < length (tr' ++ [lst]) → tr : list (composite_transition_item (equivocator_IM IM)), let final_state := finite_trace_last is tr in finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
final_state:= finite_trace_last is tr: state
Htr: finite_valid_trace_from XE is tr'
Hlst: finite_valid_trace_from XE (finite_trace_last is tr') [lst]
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors final_state
Htr_lst: tr = tr' ++ [lst]
H': final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr') → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr') = final_stateX ∧ finite_valid_trace X' isX trX
Hproperx: proper_equivocator_descriptors IM final_descriptors (destination lst) → (oitem : option (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors IM), equivocators_transition_item_project IM final_descriptors lst = Some (oitem, eqv_descriptors') ∧ match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 (l lst))) (projT2 (l lst)), existT (projT1 (l lst)) (existing_equivocator_label_extract (IM (projT1 (l lst))) (projT2 (l lst)) Hex) = l itemx) ∧ input lst = input itemx ∧ output lst = output itemx ∧ equivocators_state_project IM final_descriptors (destination lst) = destination itemx ∧ eqv_descriptors' (projT1 (l lst)) = equivocator_label_descriptor (projT2 (l lst)) | None => True end ∧ ( s : composite_state (equivocator_IM IM), composite_valid (equivocator_IM IM) (l lst) (s, input lst) → composite_transition (equivocator_IM IM) (l lst) (s, input lst) = (destination lst, output lst) → proper_equivocator_descriptors IM eqv_descriptors' s ∧ eqv_descriptors' = equivocator_descriptors_update IM final_descriptors (projT1 (l lst)) (eqv_descriptors' (projT1 (l lst))) ∧ s = state_update (equivocator_IM IM) (destination lst) (projT1 (l lst)) (s (projT1 (l lst))) ∧ previous_state_descriptor_prop (IM (projT1 (l lst))) (final_descriptors (projT1 (l lst))) (s (projT1 (l lst))) (eqv_descriptors' (projT1 (l lst))) ∧ match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM eqv_descriptors' s → composite_valid IM (l itemx) (sx, input itemx) ∧ composite_transition IM (l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors (destination lst) = equivocators_state_project IM eqv_descriptors' s end)
Hzero: (oitem : option (composite_transition_item IM)) (idescriptors : equivocator_descriptors IM) (s : composite_state (equivocator_IM IM)), composite_transition (equivocator_IM IM) (l lst) (s, input lst) = (destination lst, output lst) → composite_valid (equivocator_IM IM) (l lst) (s, input lst) → equivocators_transition_item_project IM final_descriptors lst = Some (oitem, idescriptors) → i : index, final_descriptors i = Existing 0 → idescriptors i = Existing 0

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors (tr' ++ [lst]) = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
lst: composite_transition_item (equivocator_IM IM)
H: y : nat, y < length (tr' ++ [lst]) → tr : list (composite_transition_item (equivocator_IM IM)), let final_state := finite_trace_last is tr in finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
final_state:= finite_trace_last is tr: state
Htr: finite_valid_trace_from XE is tr'
Hlst: finite_valid_trace_from XE (finite_trace_last is tr') [lst]
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr)
Htr_lst: tr = tr' ++ [lst]
H': final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr') → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr') = final_stateX ∧ finite_valid_trace X' isX trX
Hproperx: proper_equivocator_descriptors IM final_descriptors (destination lst) → (oitem : option (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors IM), equivocators_transition_item_project IM final_descriptors lst = Some (oitem, eqv_descriptors') ∧ match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 (l lst))) (projT2 (l lst)), existT (projT1 (l lst)) (existing_equivocator_label_extract (IM (projT1 (l lst))) (projT2 (l lst)) Hex) = l itemx) ∧ input lst = input itemx ∧ output lst = output itemx ∧ equivocators_state_project IM final_descriptors (destination lst) = destination itemx ∧ eqv_descriptors' (projT1 (l lst)) = equivocator_label_descriptor (projT2 (l lst)) | None => True end ∧ ( s : composite_state (equivocator_IM IM), composite_valid (equivocator_IM IM) (l lst) (s, input lst) → composite_transition (equivocator_IM IM) (l lst) (s, input lst) = (destination lst, output lst) → proper_equivocator_descriptors IM eqv_descriptors' s ∧ eqv_descriptors' = equivocator_descriptors_update IM final_descriptors (projT1 (l lst)) (eqv_descriptors' (projT1 (l lst))) ∧ s = state_update (equivocator_IM IM) (destination lst) (projT1 (l lst)) (s (projT1 (l lst))) ∧ previous_state_descriptor_prop (IM (projT1 (l lst))) (final_descriptors (projT1 (l lst))) (s (projT1 (l lst))) (eqv_descriptors' (projT1 (l lst))) ∧ match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM eqv_descriptors' s → composite_valid IM (l itemx) (sx, input itemx) ∧ composite_transition IM (l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors (destination lst) = equivocators_state_project IM eqv_descriptors' s end)
Hzero: (oitem : option (composite_transition_item IM)) (idescriptors : equivocator_descriptors IM) (s : composite_state (equivocator_IM IM)), composite_transition (equivocator_IM IM) (l lst) (s, input lst) = (destination lst, output lst) → composite_valid (equivocator_IM IM) (l lst) (s, input lst) → equivocators_transition_item_project IM final_descriptors lst = Some (oitem, idescriptors) → i : index, final_descriptors i = Existing 0 → idescriptors i = Existing 0

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors (tr' ++ [lst]) = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
lst: composite_transition_item (equivocator_IM IM)
H: y : nat, y < length (tr' ++ [lst]) → tr : list (composite_transition_item (equivocator_IM IM)), let final_state := finite_trace_last is tr in finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
final_state:= finite_trace_last is tr: state
Htr: finite_valid_trace_from XE is tr'
Hlst: finite_valid_trace_from XE (finite_trace_last is tr') [lst]
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (destination lst)
Htr_lst: tr = tr' ++ [lst]
H': final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr') → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr') = final_stateX ∧ finite_valid_trace X' isX trX
Hproperx: proper_equivocator_descriptors IM final_descriptors (destination lst) → (oitem : option (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors IM), equivocators_transition_item_project IM final_descriptors lst = Some (oitem, eqv_descriptors') ∧ match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 (l lst))) (projT2 (l lst)), existT (projT1 (l lst)) (existing_equivocator_label_extract (IM (projT1 (l lst))) (projT2 (l lst)) Hex) = l itemx) ∧ input lst = input itemx ∧ output lst = output itemx ∧ equivocators_state_project IM final_descriptors (destination lst) = destination itemx ∧ eqv_descriptors' (projT1 (l lst)) = equivocator_label_descriptor (projT2 (l lst)) | None => True end ∧ ( s : composite_state (equivocator_IM IM), composite_valid (equivocator_IM IM) (l lst) (s, input lst) → composite_transition (equivocator_IM IM) (l lst) (s, input lst) = (destination lst, output lst) → proper_equivocator_descriptors IM eqv_descriptors' s ∧ eqv_descriptors' = equivocator_descriptors_update IM final_descriptors (projT1 (l lst)) (eqv_descriptors' (projT1 (l lst))) ∧ s = state_update (equivocator_IM IM) (destination lst) (projT1 (l lst)) (s (projT1 (l lst))) ∧ previous_state_descriptor_prop (IM (projT1 (l lst))) (final_descriptors (projT1 (l lst))) (s (projT1 (l lst))) (eqv_descriptors' (projT1 (l lst))) ∧ match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM eqv_descriptors' s → composite_valid IM (l itemx) (sx, input itemx) ∧ composite_transition IM (l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors (destination lst) = equivocators_state_project IM eqv_descriptors' s end)
Hzero: (oitem : option (composite_transition_item IM)) (idescriptors : equivocator_descriptors IM) (s : composite_state (equivocator_IM IM)), composite_transition (equivocator_IM IM) (l lst) (s, input lst) = (destination lst, output lst) → composite_valid (equivocator_IM IM) (l lst) (s, input lst) → equivocators_transition_item_project IM final_descriptors lst = Some (oitem, idescriptors) → i : index, final_descriptors i = Existing 0 → idescriptors i = Existing 0

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors (tr' ++ [lst]) = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
lst: composite_transition_item (equivocator_IM IM)
H: y : nat, y < length (tr' ++ [lst]) → tr : list (composite_transition_item (equivocator_IM IM)), let final_state := finite_trace_last is tr in finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
final_state:= finite_trace_last is tr: state
Htr: finite_valid_trace_from XE is tr'
Hlst: finite_valid_trace_from XE (finite_trace_last is tr') [lst]
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (destination lst)
Htr_lst: tr = tr' ++ [lst]
H': final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr') → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr') = final_stateX ∧ finite_valid_trace X' isX trX
Hzero: (oitem : option (composite_transition_item IM)) (idescriptors : equivocator_descriptors IM) (s : composite_state (equivocator_IM IM)), composite_transition (equivocator_IM IM) (l lst) (s, input lst) = (destination lst, output lst) → composite_valid (equivocator_IM IM) (l lst) (s, input lst) → equivocators_transition_item_project IM final_descriptors lst = Some (oitem, idescriptors) → i : index, final_descriptors i = Existing 0 → idescriptors i = Existing 0
Hproperx: (oitem : option (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors IM), equivocators_transition_item_project IM final_descriptors lst = Some (oitem, eqv_descriptors') ∧ match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 (l lst))) (projT2 (l lst)), existT (projT1 (l lst)) (existing_equivocator_label_extract (IM (projT1 (l lst))) (projT2 (l lst)) Hex) = l itemx) ∧ input lst = input itemx ∧ output lst = output itemx ∧ equivocators_state_project IM final_descriptors (destination lst) = destination itemx ∧ eqv_descriptors' (projT1 (l lst)) = equivocator_label_descriptor (projT2 (l lst)) | None => True end ∧ ( s : composite_state (equivocator_IM IM), composite_valid (equivocator_IM IM) (l lst) (s, input lst) → composite_transition (equivocator_IM IM) (l lst) (s, input lst) = (destination lst, output lst) → proper_equivocator_descriptors IM eqv_descriptors' s ∧ eqv_descriptors' = equivocator_descriptors_update IM final_descriptors (projT1 (l lst)) (eqv_descriptors' (projT1 (l lst))) ∧ s = state_update (equivocator_IM IM) (destination lst) (projT1 (l lst)) (s (projT1 (l lst))) ∧ previous_state_descriptor_prop (IM (projT1 (l lst))) (final_descriptors (projT1 (l lst))) (s (projT1 (l lst))) (eqv_descriptors' (projT1 (l lst))) ∧ match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM eqv_descriptors' s → composite_valid IM (l itemx) (sx, input itemx) ∧ composite_transition IM (l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors (destination lst) = equivocators_state_project IM eqv_descriptors' s end)

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors (tr' ++ [lst]) = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
lst: composite_transition_item (equivocator_IM IM)
H: y : nat, y < length (tr' ++ [lst]) → tr : list (composite_transition_item (equivocator_IM IM)), let final_state := finite_trace_last is tr in finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
final_state:= finite_trace_last is tr: state
Htr: finite_valid_trace_from XE is tr'
Hlst: finite_valid_trace_from XE (finite_trace_last is tr') [lst]
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (destination lst)
Htr_lst: tr = tr' ++ [lst]
H': final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr') → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr') = final_stateX ∧ finite_valid_trace X' isX trX
Hzero: (oitem : option (composite_transition_item IM)) (idescriptors : equivocator_descriptors IM) (s : composite_state (equivocator_IM IM)), composite_transition (equivocator_IM IM) (l lst) (s, input lst) = (destination lst, output lst) → composite_valid (equivocator_IM IM) (l lst) (s, input lst) → equivocators_transition_item_project IM final_descriptors lst = Some (oitem, idescriptors) → i : index, final_descriptors i = Existing 0 → idescriptors i = Existing 0
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors lst = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 (l lst))) (projT2 (l lst)), existT (projT1 (l lst)) (existing_equivocator_label_extract (IM (projT1 (l lst))) (projT2 (l lst)) Hex) = l itemx) ∧ input lst = input itemx ∧ output lst = output itemx ∧ equivocators_state_project IM final_descriptors (destination lst) = destination itemx ∧ final_descriptors' (projT1 (l lst)) = equivocator_label_descriptor (projT2 (l lst)) | None => True end
Hproperx: s : composite_state (equivocator_IM IM), composite_valid (equivocator_IM IM) (l lst) (s, input lst) → composite_transition (equivocator_IM IM) (l lst) (s, input lst) = (destination lst, output lst) → proper_equivocator_descriptors IM final_descriptors' s ∧ final_descriptors' = equivocator_descriptors_update IM final_descriptors (projT1 (l lst)) (final_descriptors' (projT1 (l lst))) ∧ s = state_update (equivocator_IM IM) (destination lst) (projT1 (l lst)) (s (projT1 (l lst))) ∧ previous_state_descriptor_prop (IM (projT1 (l lst))) (final_descriptors (projT1 (l lst))) (s (projT1 (l lst))) (final_descriptors' (projT1 (l lst))) ∧ match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' s → composite_valid IM (l itemx) (sx, input itemx) ∧ composite_transition IM (l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors (destination lst) = equivocators_state_project IM final_descriptors' s end

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors (tr' ++ [lst]) = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
lst: composite_transition_item (equivocator_IM IM)
H: y : nat, y < length (tr' ++ [lst]) → tr : list (composite_transition_item (equivocator_IM IM)), let final_state := finite_trace_last is tr in finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
final_state:= finite_trace_last is tr: state
Htr: finite_valid_trace_from XE is tr'
Hlst: finite_valid_trace_from XE (finite_trace_last is tr') [lst]
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (destination lst)
Htr_lst: tr = tr' ++ [lst]
H': final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr') → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr') = final_stateX ∧ finite_valid_trace X' isX trX
Hzero: (oitem : option (composite_transition_item IM)) (idescriptors : equivocator_descriptors IM) (s : composite_state (equivocator_IM IM)), composite_transition (equivocator_IM IM) (l lst) (s, input lst) = (destination lst, output lst) → composite_valid (equivocator_IM IM) (l lst) (s, input lst) → equivocators_transition_item_project IM final_descriptors lst = Some (oitem, idescriptors) → i : index, final_descriptors i = Existing 0 → idescriptors i = Existing 0
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors lst = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 (l lst))) (projT2 (l lst)), existT (projT1 (l lst)) (existing_equivocator_label_extract (IM (projT1 (l lst))) (projT2 (l lst)) Hex) = l itemx) ∧ input lst = input itemx ∧ output lst = output itemx ∧ equivocators_state_project IM final_descriptors (destination lst) = destination itemx ∧ final_descriptors' (projT1 (l lst)) = equivocator_label_descriptor (projT2 (l lst)) | None => True end
Hproperx: composite_valid (equivocator_IM IM) (l lst) (finite_trace_last is tr', input lst) → composite_transition (equivocator_IM IM) (l lst) (finite_trace_last is tr', input lst) = (destination lst, output lst) → proper_equivocator_descriptors IM final_descriptors' (finite_trace_last is tr') ∧ final_descriptors' = equivocator_descriptors_update IM final_descriptors (projT1 (l lst)) (final_descriptors' (projT1 (l lst))) ∧ finite_trace_last is tr' = state_update (equivocator_IM IM) (destination lst) (projT1 (l lst)) (finite_trace_last is tr' (projT1 (l lst))) ∧ previous_state_descriptor_prop (IM (projT1 (l lst))) (final_descriptors (projT1 (l lst))) (finite_trace_last is tr' (projT1 (l lst))) (final_descriptors' (projT1 (l lst))) ∧ match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → composite_valid IM (l itemx) (sx, input itemx) ∧ composite_transition IM (l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors (destination lst) = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors (tr' ++ [lst]) = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
lst: composite_transition_item (equivocator_IM IM)
H: y : nat, y < length (tr' ++ [lst]) → tr : list (composite_transition_item (equivocator_IM IM)), let final_state := finite_trace_last is tr in finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
final_state:= finite_trace_last is tr: state
Htr: finite_valid_trace_from XE is tr'
Hlst: finite_valid_trace_from XE (finite_trace_last is tr') [lst]
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (destination lst)
Htr_lst: tr = tr' ++ [lst]
H': final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr') → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr') = final_stateX ∧ finite_valid_trace X' isX trX
Hzero: (oitem : option (composite_transition_item IM)) (idescriptors : equivocator_descriptors IM) (s : composite_state (equivocator_IM IM)), composite_transition (equivocator_IM IM) (l lst) (s, input lst) = (destination lst, output lst) → composite_valid (equivocator_IM IM) (l lst) (s, input lst) → equivocators_transition_item_project IM final_descriptors lst = Some (oitem, idescriptors) → i : index, final_descriptors i = Existing 0 → idescriptors i = Existing 0
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors lst = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 (l lst))) (projT2 (l lst)), existT (projT1 (l lst)) (existing_equivocator_label_extract (IM (projT1 (l lst))) (projT2 (l lst)) Hex) = l itemx) ∧ input lst = input itemx ∧ output lst = output itemx ∧ equivocators_state_project IM final_descriptors (destination lst) = destination itemx ∧ final_descriptors' (projT1 (l lst)) = equivocator_label_descriptor (projT2 (l lst)) | None => True end
Hproperx: composite_valid (equivocator_IM IM) (l lst) (finite_trace_last is tr', input lst) → composite_transition (equivocator_IM IM) (l lst) (finite_trace_last is tr', input lst) = (destination lst, output lst) → proper_equivocator_descriptors IM final_descriptors' (finite_trace_last is tr') ∧ final_descriptors' = equivocator_descriptors_update IM final_descriptors (projT1 (l lst)) (final_descriptors' (projT1 (l lst))) ∧ finite_trace_last is tr' = state_update (equivocator_IM IM) (destination lst) (projT1 (l lst)) (finite_trace_last is tr' (projT1 (l lst))) ∧ previous_state_descriptor_prop (IM (projT1 (l lst))) (final_descriptors (projT1 (l lst))) (finite_trace_last is tr' (projT1 (l lst))) (final_descriptors' (projT1 (l lst))) ∧ match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → composite_valid IM (l itemx) (sx, input itemx) ∧ composite_transition IM (l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors (destination lst) = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ foldr (equivocators_trace_project_folder IM) (Some ([], final_descriptors)) (tr' ++ [lst]) = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
lst: composite_transition_item (equivocator_IM IM)
H: y : nat, y < length (tr' ++ [lst]) → tr : list (composite_transition_item (equivocator_IM IM)), let final_state := finite_trace_last is tr in finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
final_state:= finite_trace_last is tr: state
Htr: finite_valid_trace_from XE is tr'
Hlst: finite_valid_trace_from XE (finite_trace_last is tr') [lst]
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (destination lst)
Htr_lst: tr = tr' ++ [lst]
H': final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr') → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr') = final_stateX ∧ finite_valid_trace X' isX trX
Hzero: (oitem : option (composite_transition_item IM)) (idescriptors : equivocator_descriptors IM) (s : composite_state (equivocator_IM IM)), composite_transition (equivocator_IM IM) (l lst) (s, input lst) = (destination lst, output lst) → composite_valid (equivocator_IM IM) (l lst) (s, input lst) → equivocators_transition_item_project IM final_descriptors lst = Some (oitem, idescriptors) → i : index, final_descriptors i = Existing 0 → idescriptors i = Existing 0
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors lst = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 (l lst))) (projT2 (l lst)), existT (projT1 (l lst)) (existing_equivocator_label_extract (IM (projT1 (l lst))) (projT2 (l lst)) Hex) = l itemx) ∧ input lst = input itemx ∧ output lst = output itemx ∧ equivocators_state_project IM final_descriptors (destination lst) = destination itemx ∧ final_descriptors' (projT1 (l lst)) = equivocator_label_descriptor (projT2 (l lst)) | None => True end
Hproperx: composite_valid (equivocator_IM IM) (l lst) (finite_trace_last is tr', input lst) → composite_transition (equivocator_IM IM) (l lst) (finite_trace_last is tr', input lst) = (destination lst, output lst) → proper_equivocator_descriptors IM final_descriptors' (finite_trace_last is tr') ∧ final_descriptors' = equivocator_descriptors_update IM final_descriptors (projT1 (l lst)) (final_descriptors' (projT1 (l lst))) ∧ finite_trace_last is tr' = state_update (equivocator_IM IM) (destination lst) (projT1 (l lst)) (finite_trace_last is tr' (projT1 (l lst))) ∧ previous_state_descriptor_prop (IM (projT1 (l lst))) (final_descriptors (projT1 (l lst))) (finite_trace_last is tr' (projT1 (l lst))) (final_descriptors' (projT1 (l lst))) ∧ match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → composite_valid IM (l itemx) (sx, input itemx) ∧ composite_transition IM (l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors (destination lst) = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ foldr (equivocators_trace_project_folder IM) (foldr (equivocators_trace_project_folder IM) (Some ([], final_descriptors)) [lst]) tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
lst: composite_transition_item (equivocator_IM IM)
H: y : nat, y < length (tr' ++ [lst]) → tr : list (composite_transition_item (equivocator_IM IM)), let final_state := finite_trace_last is tr in finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
final_state:= finite_trace_last is tr: state
Htr: finite_valid_trace_from XE is tr'
Hlst: finite_valid_trace_from XE (finite_trace_last is tr') [lst]
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (destination lst)
Htr_lst: tr = tr' ++ [lst]
H': final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr') → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr') = final_stateX ∧ finite_valid_trace X' isX trX
Hzero: (oitem : option (composite_transition_item IM)) (idescriptors : equivocator_descriptors IM) (s : composite_state (equivocator_IM IM)), composite_transition (equivocator_IM IM) (l lst) (s, input lst) = (destination lst, output lst) → composite_valid (equivocator_IM IM) (l lst) (s, input lst) → equivocators_transition_item_project IM final_descriptors lst = Some (oitem, idescriptors) → i : index, final_descriptors i = Existing 0 → idescriptors i = Existing 0
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors lst = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 (l lst))) (projT2 (l lst)), existT (projT1 (l lst)) (existing_equivocator_label_extract (IM (projT1 (l lst))) (projT2 (l lst)) Hex) = l itemx) ∧ input lst = input itemx ∧ output lst = output itemx ∧ equivocators_state_project IM final_descriptors (destination lst) = destination itemx ∧ final_descriptors' (projT1 (l lst)) = equivocator_label_descriptor (projT2 (l lst)) | None => True end
Hproperx: composite_valid (equivocator_IM IM) (l lst) (finite_trace_last is tr', input lst) → composite_transition (equivocator_IM IM) (l lst) (finite_trace_last is tr', input lst) = (destination lst, output lst) → proper_equivocator_descriptors IM final_descriptors' (finite_trace_last is tr') ∧ final_descriptors' = equivocator_descriptors_update IM final_descriptors (projT1 (l lst)) (final_descriptors' (projT1 (l lst))) ∧ finite_trace_last is tr' = state_update (equivocator_IM IM) (destination lst) (projT1 (l lst)) (finite_trace_last is tr' (projT1 (l lst))) ∧ previous_state_descriptor_prop (IM (projT1 (l lst))) (final_descriptors (projT1 (l lst))) (finite_trace_last is tr' (projT1 (l lst))) (final_descriptors' (projT1 (l lst))) ∧ match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → composite_valid IM (l itemx) (sx, input itemx) ∧ composite_transition IM (l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors (destination lst) = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = foldr (equivocators_trace_project_folder IM) (Some ([], final_descriptors)) [lst]

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ foldr (equivocators_trace_project_folder IM) foldx tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
lst: composite_transition_item (equivocator_IM IM)
H: y : nat, y < length (tr' ++ [lst]) → tr : list (composite_transition_item (equivocator_IM IM)), let final_state := finite_trace_last is tr in finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
final_state:= finite_trace_last is tr: state
Htr: finite_valid_trace_from XE is tr'
Hlst: finite_valid_trace_from XE (finite_trace_last is tr') [lst]
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (destination lst)
Htr_lst: tr = tr' ++ [lst]
H': final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr') → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr') = final_stateX ∧ finite_valid_trace X' isX trX
Hzero: (oitem : option (composite_transition_item IM)) (idescriptors : equivocator_descriptors IM) (s : composite_state (equivocator_IM IM)), composite_transition (equivocator_IM IM) (l lst) (s, input lst) = (destination lst, output lst) → composite_valid (equivocator_IM IM) (l lst) (s, input lst) → equivocators_transition_item_project IM final_descriptors lst = Some (oitem, idescriptors) → i : index, final_descriptors i = Existing 0 → idescriptors i = Existing 0
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors lst = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 (l lst))) (projT2 (l lst)), existT (projT1 (l lst)) (existing_equivocator_label_extract (IM (projT1 (l lst))) (projT2 (l lst)) Hex) = l itemx) ∧ input lst = input itemx ∧ output lst = output itemx ∧ equivocators_state_project IM final_descriptors (destination lst) = destination itemx ∧ final_descriptors' (projT1 (l lst)) = equivocator_label_descriptor (projT2 (l lst)) | None => True end
Hproperx: composite_valid (equivocator_IM IM) (l lst) (finite_trace_last is tr', input lst) → composite_transition (equivocator_IM IM) (l lst) (finite_trace_last is tr', input lst) = (destination lst, output lst) → proper_equivocator_descriptors IM final_descriptors' (finite_trace_last is tr') ∧ final_descriptors' = equivocator_descriptors_update IM final_descriptors (projT1 (l lst)) (final_descriptors' (projT1 (l lst))) ∧ finite_trace_last is tr' = state_update (equivocator_IM IM) (destination lst) (projT1 (l lst)) (finite_trace_last is tr' (projT1 (l lst))) ∧ previous_state_descriptor_prop (IM (projT1 (l lst))) (final_descriptors (projT1 (l lst))) (finite_trace_last is tr' (projT1 (l lst))) (final_descriptors' (projT1 (l lst))) ∧ match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → composite_valid IM (l itemx) (sx, input itemx) ∧ composite_transition IM (l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors (destination lst) = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = match equivocators_transition_item_project IM final_descriptors lst with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ foldr (equivocators_trace_project_folder IM) foldx tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
lst: composite_transition_item (equivocator_IM IM)
H: y : nat, y < length (tr' ++ [lst]) → tr : list (composite_transition_item (equivocator_IM IM)), let final_state := finite_trace_last is tr in finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
final_state:= finite_trace_last is tr: state
Htr: finite_valid_trace_from XE is tr'
Hlst: finite_valid_trace_from XE (finite_trace_last is tr') [lst]
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (destination lst)
Htr_lst: tr = tr' ++ [lst]
H': final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr') → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr') = final_stateX ∧ finite_valid_trace X' isX trX
Hzero: (oitem : option (composite_transition_item IM)) (idescriptors : equivocator_descriptors IM) (s : composite_state (equivocator_IM IM)), composite_transition (equivocator_IM IM) (l lst) (s, input lst) = (destination lst, output lst) → composite_valid (equivocator_IM IM) (l lst) (s, input lst) → equivocators_transition_item_project IM final_descriptors lst = Some (oitem, idescriptors) → i : index, final_descriptors i = Existing 0 → idescriptors i = Existing 0
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors lst = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 (l lst))) (projT2 (l lst)), existT (projT1 (l lst)) (existing_equivocator_label_extract (IM (projT1 (l lst))) (projT2 (l lst)) Hex) = l itemx) ∧ input lst = input itemx ∧ output lst = output itemx ∧ equivocators_state_project IM final_descriptors (destination lst) = destination itemx ∧ final_descriptors' (projT1 (l lst)) = equivocator_label_descriptor (projT2 (l lst)) | None => True end
Hproperx: composite_valid (equivocator_IM IM) (l lst) (finite_trace_last is tr', input lst) → composite_transition (equivocator_IM IM) (l lst) (finite_trace_last is tr', input lst) = (destination lst, output lst) → proper_equivocator_descriptors IM final_descriptors' (finite_trace_last is tr') ∧ final_descriptors' = equivocator_descriptors_update IM final_descriptors (projT1 (l lst)) (final_descriptors' (projT1 (l lst))) ∧ finite_trace_last is tr' = state_update (equivocator_IM IM) (destination lst) (projT1 (l lst)) (finite_trace_last is tr' (projT1 (l lst))) ∧ previous_state_descriptor_prop (IM (projT1 (l lst))) (final_descriptors (projT1 (l lst))) (finite_trace_last is tr' (projT1 (l lst))) (final_descriptors' (projT1 (l lst))) ∧ match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → composite_valid IM (l itemx) (sx, input itemx) ∧ composite_transition IM (l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors (destination lst) = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ foldr (equivocators_trace_project_folder IM) foldx tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
lst: composite_transition_item (equivocator_IM IM)
H: y : nat, y < length (tr' ++ [lst]) → tr : list (composite_transition_item (equivocator_IM IM)), let final_state := finite_trace_last is tr in finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
final_state:= finite_trace_last is tr: state
Htr: finite_valid_trace_from XE is tr'
Hlst: input_valid_transition XE (l lst) (finite_trace_last is tr', input lst) (destination lst, output lst)
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (destination lst)
Htr_lst: tr = tr' ++ [lst]
H': final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr') → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr') = final_stateX ∧ finite_valid_trace X' isX trX
Hzero: (oitem : option (composite_transition_item IM)) (idescriptors : equivocator_descriptors IM) (s : composite_state (equivocator_IM IM)), composite_transition (equivocator_IM IM) (l lst) (s, input lst) = (destination lst, output lst) → composite_valid (equivocator_IM IM) (l lst) (s, input lst) → equivocators_transition_item_project IM final_descriptors lst = Some (oitem, idescriptors) → i : index, final_descriptors i = Existing 0 → idescriptors i = Existing 0
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors lst = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 (l lst))) (projT2 (l lst)), existT (projT1 (l lst)) (existing_equivocator_label_extract (IM (projT1 (l lst))) (projT2 (l lst)) Hex) = l itemx) ∧ input lst = input itemx ∧ output lst = output itemx ∧ equivocators_state_project IM final_descriptors (destination lst) = destination itemx ∧ final_descriptors' (projT1 (l lst)) = equivocator_label_descriptor (projT2 (l lst)) | None => True end
Hproperx: composite_valid (equivocator_IM IM) (l lst) (finite_trace_last is tr', input lst) → composite_transition (equivocator_IM IM) (l lst) (finite_trace_last is tr', input lst) = (destination lst, output lst) → proper_equivocator_descriptors IM final_descriptors' (finite_trace_last is tr') ∧ final_descriptors' = equivocator_descriptors_update IM final_descriptors (projT1 (l lst)) (final_descriptors' (projT1 (l lst))) ∧ finite_trace_last is tr' = state_update (equivocator_IM IM) (destination lst) (projT1 (l lst)) (finite_trace_last is tr' (projT1 (l lst))) ∧ previous_state_descriptor_prop (IM (projT1 (l lst))) (final_descriptors (projT1 (l lst))) (finite_trace_last is tr' (projT1 (l lst))) (final_descriptors' (projT1 (l lst))) ∧ match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → composite_valid IM (l itemx) (sx, input itemx) ∧ composite_transition IM (l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors (destination lst) = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ foldr (equivocators_trace_project_folder IM) foldx tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: label
iom: option message
s: state
oom: option message
H: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), let final_state := finite_trace_last is tr in finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
final_state:= finite_trace_last is tr: state
Htr: finite_valid_trace_from XE is tr'
Hlst: input_valid_transition XE (VLSM.l {| l := l; input := iom; destination := s; output := oom |}) (finite_trace_last is tr', input {| l := l; input := iom; destination := s; output := oom |}) (destination {| l := l; input := iom; destination := s; output := oom |}, output {| l := l; input := iom; destination := s; output := oom |})
Hinit: initial_state_prop is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |})
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
H': final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr') → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr') = final_stateX ∧ finite_valid_trace X' isX trX
Hzero: (oitem : option (composite_transition_item IM)) (idescriptors : equivocator_descriptors IM) (s0 : composite_state (equivocator_IM IM)), composite_transition (equivocator_IM IM) (VLSM.l {| l := l; input := iom; destination := s; output := oom |}) (s0, input {| l := l; input := iom; destination := s; output := oom |}) = (destination {| l := l; input := iom; destination := s; output := oom |}, output {| l := l; input := iom; destination := s; output := oom |}) → composite_valid (equivocator_IM IM) (VLSM.l {| l := l; input := iom; destination := s; output := oom |}) (s0, input {| l := l; input := iom; destination := s; output := oom |}) → equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, idescriptors) → i : index, final_descriptors i = Existing 0 → idescriptors i = Existing 0
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})), existT (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (existing_equivocator_label_extract (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) Hex) = VLSM.l itemx) ∧ input {| l := l; input := iom; destination := s; output := oom |} = input itemx ∧ output {| l := l; input := iom; destination := s; output := oom |} = output itemx ∧ equivocators_state_project IM final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = destination itemx ∧ final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) = equivocator_label_descriptor (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) | None => True end
Hproperx: composite_valid (equivocator_IM IM) (VLSM.l {| l := l; input := iom; destination := s; output := oom |}) (finite_trace_last is tr', input {| l := l; input := iom; destination := s; output := oom |}) → composite_transition (equivocator_IM IM) (VLSM.l {| l := l; input := iom; destination := s; output := oom |}) (finite_trace_last is tr', input {| l := l; input := iom; destination := s; output := oom |}) = (destination {| l := l; input := iom; destination := s; output := oom |}, output {| l := l; input := iom; destination := s; output := oom |}) → proper_equivocator_descriptors IM final_descriptors' (finite_trace_last is tr') ∧ final_descriptors' = equivocator_descriptors_update IM final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) ∧ finite_trace_last is tr' = state_update (equivocator_IM IM) (destination {| l := l; input := iom; destination := s; output := oom |}) (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (finite_trace_last is tr' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) ∧ previous_state_descriptor_prop (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (finite_trace_last is tr' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) ∧ match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → composite_valid IM (VLSM.l itemx) (sx, input itemx) ∧ composite_transition IM (VLSM.l itemx) (sx, input itemx) = (destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ foldr (equivocators_trace_project_folder IM) foldx tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
H: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is tr: _composite_state (equivocator_IM IM)
Htr: finite_valid_trace_from XE is tr'
Hlst: input_valid_transition XE l (finite_trace_last is tr', iom) (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
H': final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr') → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Hzero: (oitem : option (composite_transition_item IM)) (idescriptors : equivocator_descriptors IM) (s0 : composite_state (equivocator_IM IM)), (let (i, li) := l in let (si', om') := vtransition (equivocator_IM IM i) li (s0 i, iom) in (state_update (equivocator_IM IM) s0 i si', om')) = (s, oom) → (let (i, li) := l in vvalid (equivocator_IM IM i) li (s0 i, iom)) → equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, idescriptors) → i : index, final_descriptors i = Existing 0 → idescriptors i = Existing 0
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project IM final_descriptors s = destination itemx ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l) | None => True end
Hproperx: (let (i, li) := l in vvalid (equivocator_IM IM i) li (finite_trace_last is tr' i, iom)) → (let (i, li) := l in let (si', om') := vtransition (equivocator_IM IM i) li (finite_trace_last is tr' i, iom) in (state_update (equivocator_IM IM) (finite_trace_last is tr') i si', om')) = (s, oom) → proper_equivocator_descriptors IM final_descriptors' (finite_trace_last is tr') ∧ final_descriptors' = equivocator_descriptors_update IM final_descriptors (projT1 l) (final_descriptors' (projT1 l)) ∧ finite_trace_last is tr' = state_update (equivocator_IM IM) s (projT1 l) (finite_trace_last is tr' (projT1 l)) ∧ previous_state_descriptor_prop (IM (projT1 l)) (final_descriptors (projT1 l)) (finite_trace_last is tr' (projT1 l)) (final_descriptors' (projT1 l)) ∧ match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → (let (i, li) := VLSM.l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ foldr (equivocators_trace_project_folder IM) foldx tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
H: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is tr: _composite_state (equivocator_IM IM)
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
H': final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr') → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Hzero: (oitem : option (composite_transition_item IM)) (idescriptors : equivocator_descriptors IM) (s0 : composite_state (equivocator_IM IM)), (let (i, li) := l in let (si', om') := vtransition (equivocator_IM IM i) li (s0 i, iom) in (state_update (equivocator_IM IM) s0 i si', om')) = (s, oom) → (let (i, li) := l in vvalid (equivocator_IM IM i) li (s0 i, iom)) → equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, idescriptors) → i : index, final_descriptors i = Existing 0 → idescriptors i = Existing 0
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project IM final_descriptors s = destination itemx ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l) | None => True end
Hproperx: (let (i, li) := l in vvalid (equivocator_IM IM i) li (finite_trace_last is tr' i, iom)) → (let (i, li) := l in let (si', om') := vtransition (equivocator_IM IM i) li (finite_trace_last is tr' i, iom) in (state_update (equivocator_IM IM) (finite_trace_last is tr') i si', om')) = (s, oom) → proper_equivocator_descriptors IM final_descriptors' (finite_trace_last is tr') ∧ final_descriptors' = equivocator_descriptors_update IM final_descriptors (projT1 l) (final_descriptors' (projT1 l)) ∧ finite_trace_last is tr' = state_update (equivocator_IM IM) s (projT1 l) (finite_trace_last is tr' (projT1 l)) ∧ previous_state_descriptor_prop (IM (projT1 l)) (final_descriptors (projT1 l)) (finite_trace_last is tr' (projT1 l)) (final_descriptors' (projT1 l)) ∧ match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → (let (i, li) := VLSM.l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ foldr (equivocators_trace_project_folder IM) foldx tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
H: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is tr: _composite_state (equivocator_IM IM)
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
H': final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr') → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_descriptors': equivocator_descriptors IM
Hzero: i : index, final_descriptors i = Existing 0 → final_descriptors' i = Existing 0
oitem: option (composite_transition_item IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project IM final_descriptors s = destination itemx ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l) | None => True end
Hproperx: (let (i, li) := l in vvalid (equivocator_IM IM i) li (finite_trace_last is tr' i, iom)) → (let (i, li) := l in let (si', om') := vtransition (equivocator_IM IM i) li (finite_trace_last is tr' i, iom) in (state_update (equivocator_IM IM) (finite_trace_last is tr') i si', om')) = (s, oom) → proper_equivocator_descriptors IM final_descriptors' (finite_trace_last is tr') ∧ final_descriptors' = equivocator_descriptors_update IM final_descriptors (projT1 l) (final_descriptors' (projT1 l)) ∧ finite_trace_last is tr' = state_update (equivocator_IM IM) s (projT1 l) (finite_trace_last is tr' (projT1 l)) ∧ previous_state_descriptor_prop (IM (projT1 l)) (final_descriptors (projT1 l)) (finite_trace_last is tr' (projT1 l)) (final_descriptors' (projT1 l)) ∧ match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → (let (i, li) := VLSM.l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ foldr (equivocators_trace_project_folder IM) foldx tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
H: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is tr: _composite_state (equivocator_IM IM)
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
H': final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr') → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_descriptors': equivocator_descriptors IM
Hzero: i : index, final_descriptors i = Existing 0 → final_descriptors' i = Existing 0
oitem: option (composite_transition_item IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project IM final_descriptors s = destination itemx ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l) | None => True end
Hproperx: proper_equivocator_descriptors IM final_descriptors' (finite_trace_last is tr') ∧ final_descriptors' = equivocator_descriptors_update IM final_descriptors (projT1 l) (final_descriptors' (projT1 l)) ∧ finite_trace_last is tr' = state_update (equivocator_IM IM) s (projT1 l) (finite_trace_last is tr' (projT1 l)) ∧ previous_state_descriptor_prop (IM (projT1 l)) (final_descriptors (projT1 l)) (finite_trace_last is tr' (projT1 l)) (final_descriptors' (projT1 l)) ∧ match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → (let (i, li) := VLSM.l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ foldr (equivocators_trace_project_folder IM) foldx tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
H: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is tr: _composite_state (equivocator_IM IM)
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
H': final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr') → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_descriptors': equivocator_descriptors IM
Hzero: i : index, final_descriptors i = Existing 0 → final_descriptors' i = Existing 0
oitem: option (composite_transition_item IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project IM final_descriptors s = destination itemx ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l) | None => True end
_Hproper': proper_equivocator_descriptors IM final_descriptors' (finite_trace_last is tr')
Hx: match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → (let (i, li) := VLSM.l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ foldr (equivocators_trace_project_folder IM) foldx tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
H: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is tr: _composite_state (equivocator_IM IM)
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
H': final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr') → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_descriptors': equivocator_descriptors IM
Hzero: i : index, final_descriptors i = Existing 0 → final_descriptors' i = Existing 0
oitem: option (composite_transition_item IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project IM final_descriptors s = destination itemx ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l) | None => True end
_Hproper': proper_equivocator_descriptors IM final_descriptors' (finite_trace_last is tr')
Hx: match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → (let (i, li) := VLSM.l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end

proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
H: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is tr: _composite_state (equivocator_IM IM)
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
H': final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr') → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_descriptors': equivocator_descriptors IM
Hzero: i : index, final_descriptors i = Existing 0 → final_descriptors' i = Existing 0
oitem: option (composite_transition_item IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project IM final_descriptors s = destination itemx ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l) | None => True end
_Hproper': proper_equivocator_descriptors IM final_descriptors' (finite_trace_last is tr')
Hx: match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → (let (i, li) := VLSM.l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ foldr (equivocators_trace_project_folder IM) foldx tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
H: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is tr: _composite_state (equivocator_IM IM)
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
H': final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr') → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_descriptors': equivocator_descriptors IM
Hzero: i : index, final_descriptors i = Existing 0 → final_descriptors' i = Existing 0
oitem: option (composite_transition_item IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project IM final_descriptors s = destination itemx ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l) | None => True end
_Hproper': proper_equivocator_descriptors IM final_descriptors' (finite_trace_last is tr')
Hx: match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → (let (i, li) := VLSM.l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end

proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
H: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is tr: _composite_state (equivocator_IM IM)
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
H': final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr') → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_descriptors': equivocator_descriptors IM
Hzero: i : index, final_descriptors i = Existing 0 → final_descriptors' i = Existing 0
oitem: option (composite_transition_item IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project IM final_descriptors s = destination itemx ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l) | None => True end
_Hproper': proper_equivocator_descriptors IM final_descriptors' (finite_trace_last is tr')
Hx: match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → (let (i, li) := VLSM.l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end

i : index, i ∉ equivocating → final_descriptors' i = Existing 0
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
H: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is tr: _composite_state (equivocator_IM IM)
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
H': final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr') → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_descriptors': equivocator_descriptors IM
Hzero: i : index, final_descriptors i = Existing 0 → final_descriptors' i = Existing 0
oitem: option (composite_transition_item IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project IM final_descriptors s = destination itemx ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l) | None => True end
_Hproper': proper_equivocator_descriptors IM final_descriptors' (finite_trace_last is tr')
Hx: match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → (let (i, li) := VLSM.l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end
i: index
Hi: i ∉ equivocating

final_descriptors' i = Existing 0
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
H: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is tr: _composite_state (equivocator_IM IM)
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
H': final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr') → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_descriptors': equivocator_descriptors IM
Hzero: i : index, final_descriptors i = Existing 0 → final_descriptors' i = Existing 0
oitem: option (composite_transition_item IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project IM final_descriptors s = destination itemx ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l) | None => True end
_Hproper': proper_equivocator_descriptors IM final_descriptors' (finite_trace_last is tr')
Hx: match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → (let (i, li) := VLSM.l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end
i: index
Hi: i ∉ equivocating

final_descriptors i = Existing 0
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
H: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is tr: _composite_state (equivocator_IM IM)
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
H': final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr') → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_descriptors': equivocator_descriptors IM
oitem: option (composite_transition_item IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project IM final_descriptors s = destination itemx ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l) | None => True end
_Hproper': proper_equivocator_descriptors IM final_descriptors' (finite_trace_last is tr')
Hx: match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → (let (i, li) := VLSM.l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end
i: index
Hi: i ∉ equivocating

final_descriptors i = Existing 0
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
H: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is tr: _composite_state (equivocator_IM IM)
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_descriptors: equivocator_descriptors IM
Hzero: i : index, i ∉ equivocating → final_descriptors i = Existing 0
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
H': final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr') → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_descriptors': equivocator_descriptors IM
oitem: option (composite_transition_item IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project IM final_descriptors s = destination itemx ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l) | None => True end
_Hproper': proper_equivocator_descriptors IM final_descriptors' (finite_trace_last is tr')
Hx: match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → (let (i, li) := VLSM.l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end
i: index
Hi: i ∉ equivocating

final_descriptors i = Existing 0
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
H: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is tr: _composite_state (equivocator_IM IM)
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_descriptors: equivocator_descriptors IM
Hzero: i : index, i ∉ equivocating → final_descriptors i = Existing 0
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
H': final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr') → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_descriptors': equivocator_descriptors IM
oitem: option (composite_transition_item IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project IM final_descriptors s = destination itemx ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l) | None => True end
_Hproper': proper_equivocator_descriptors IM final_descriptors' (finite_trace_last is tr')
Hx: match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → (let (i, li) := VLSM.l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end
i: index
Hi: i ∉ equivocating

i ∉ equivocating
assumption.
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
H: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is tr: _composite_state (equivocator_IM IM)
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
H': final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr') → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_descriptors': equivocator_descriptors IM
Hzero: i : index, final_descriptors i = Existing 0 → final_descriptors' i = Existing 0
oitem: option (composite_transition_item IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project IM final_descriptors s = destination itemx ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l) | None => True end
_Hproper': proper_equivocator_descriptors IM final_descriptors' (finite_trace_last is tr')
Hx: match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → (let (i, li) := VLSM.l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ foldr (equivocators_trace_project_folder IM) foldx tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
H: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is tr: _composite_state (equivocator_IM IM)
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
H': final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr') → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_descriptors': equivocator_descriptors IM
oitem: option (composite_transition_item IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project IM final_descriptors s = destination itemx ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l) | None => True end
Hx: match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → (let (i, li) := VLSM.l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ foldr (equivocators_trace_project_folder IM) foldx tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
H: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is tr: _composite_state (equivocator_IM IM)
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
final_descriptors': equivocator_descriptors IM
H': (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors' tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
oitem: option (composite_transition_item IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project IM final_descriptors s = destination itemx ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l) | None => True end
Hx: match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → (let (i, li) := VLSM.l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ foldr (equivocators_trace_project_folder IM) foldx tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
H: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is tr: _composite_state (equivocator_IM IM)
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
final_descriptors': equivocator_descriptors IM
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
oitem: option (composite_transition_item IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project IM final_descriptors s = destination itemx ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l) | None => True end
Hx: match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → (let (i, li) := VLSM.l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ foldr (equivocators_trace_project_folder IM) foldx tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
H: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is tr: _composite_state (equivocator_IM IM)
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
final_descriptors': equivocator_descriptors IM
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
oitem: option (composite_transition_item IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project IM final_descriptors s = destination itemx ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l) | None => True end
Hx: match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → (let (i, li) := VLSM.l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')

finite_valid_trace FreeE is tr'
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
H: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is tr: _composite_state (equivocator_IM IM)
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
final_descriptors': equivocator_descriptors IM
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
oitem: option (composite_transition_item IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project IM final_descriptors s = destination itemx ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l) | None => True end
Hx: match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → (let (i, li) := VLSM.l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ foldr (equivocators_trace_project_folder IM) foldx tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
H: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is tr: _composite_state (equivocator_IM IM)
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
final_descriptors': equivocator_descriptors IM
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
oitem: option (composite_transition_item IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project IM final_descriptors s = destination itemx ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l) | None => True end
Hx: match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → (let (i, li) := VLSM.l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')

finite_valid_trace FreeE is tr'
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
H: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is tr: _composite_state (equivocator_IM IM)
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
final_descriptors': equivocator_descriptors IM
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
oitem: option (composite_transition_item IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project IM final_descriptors s = destination itemx ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l) | None => True end
Hx: match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → (let (i, li) := VLSM.l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')

finite_valid_trace_from FreeE is tr'
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
H: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is tr: _composite_state (equivocator_IM IM)
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
final_descriptors': equivocator_descriptors IM
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
oitem: option (composite_transition_item IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project IM final_descriptors s = destination itemx ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l) | None => True end
Hx: match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → (let (i, li) := VLSM.l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')

finite_valid_trace_from XE is tr' → finite_valid_trace_from FreeE is tr'
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
H: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is tr: _composite_state (equivocator_IM IM)
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
final_descriptors': equivocator_descriptors IM
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
oitem: option (composite_transition_item IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project IM final_descriptors s = destination itemx ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l) | None => True end
Hx: match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → (let (i, li) := VLSM.l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')

VLSM_incl_part (composite_vlsm_machine (equivocator_IM IM) (equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating)) (composite_vlsm_machine (equivocator_IM IM) (free_constraint (equivocator_IM IM)))
apply equivocators_fixed_equivocations_vlsm_incl_free.
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
H: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is tr: _composite_state (equivocator_IM IM)
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
final_descriptors': equivocator_descriptors IM
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
oitem: option (composite_transition_item IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project IM final_descriptors s = destination itemx ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l) | None => True end
Hx: match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → (let (i, li) := VLSM.l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ foldr (equivocators_trace_project_folder IM) foldx tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
H: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is tr: _composite_state (equivocator_IM IM)
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
final_descriptors': equivocator_descriptors IM
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
oitem: option (composite_transition_item IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project IM final_descriptors s = destination itemx ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l) | None => True end
Hx: match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → (let (i, li) := VLSM.l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'

finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
H: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is tr: _composite_state (equivocator_IM IM)
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
final_descriptors': equivocator_descriptors IM
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
oitem: option (composite_transition_item IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project IM final_descriptors s = destination itemx ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l) | None => True end
Hx: match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → (let (i, li) := VLSM.l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ foldr (equivocators_trace_project_folder IM) foldx tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
H: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is tr: _composite_state (equivocator_IM IM)
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
final_descriptors': equivocator_descriptors IM
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
oitem: option (composite_transition_item IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project IM final_descriptors s = destination itemx ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l) | None => True end
Hx: match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → (let (i, li) := VLSM.l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'

finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
H: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is tr: _composite_state (equivocator_IM IM)
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
final_descriptors': equivocator_descriptors IM
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
oitem: option (composite_transition_item IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project IM final_descriptors s = destination itemx ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l) | None => True end
Hx: match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → (let (i, li) := VLSM.l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'

finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is tr'
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
H: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is tr: _composite_state (equivocator_IM IM)
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
final_descriptors': equivocator_descriptors IM
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
oitem: option (composite_transition_item IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project IM final_descriptors s = destination itemx ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l) | None => True end
Hx: match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → (let (i, li) := VLSM.l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Hincl: VLSM_incl FreeE (pre_loaded_with_all_messages_vlsm FreeE)

finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is tr'
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
H: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is tr: _composite_state (equivocator_IM IM)
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
final_descriptors': equivocator_descriptors IM
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
oitem: option (composite_transition_item IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project IM final_descriptors s = destination itemx ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l) | None => True end
Hx: match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → (let (i, li) := VLSM.l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Hincl: VLSM_incl FreeE (pre_loaded_with_all_messages_vlsm FreeE)

finite_valid_trace_from (mk_vlsm (machine FreeE)) is tr'
apply Htr'.
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
H: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is tr: _composite_state (equivocator_IM IM)
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
final_descriptors': equivocator_descriptors IM
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
oitem: option (composite_transition_item IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project IM final_descriptors s = destination itemx ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l) | None => True end
Hx: match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → (let (i, li) := VLSM.l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ foldr (equivocators_trace_project_folder IM) foldx tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
H: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is tr: _composite_state (equivocator_IM IM)
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
final_descriptors': equivocator_descriptors IM
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
oitem: option (composite_transition_item IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project IM final_descriptors s = destination itemx ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l) | None => True end
Hx: match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → (let (i, li) := VLSM.l itemx in vvalid (IM i) li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := vtransition (IM i) li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ foldr (equivocators_trace_project_folder IM) foldx tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
H: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is tr: _composite_state (equivocator_IM IM)
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
final_descriptors': equivocator_descriptors IM
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
item: composite_transition_item IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
Hitemx: ( Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l item) ∧ iom = input item ∧ oom = output item ∧ equivocators_state_project IM final_descriptors s = destination item ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l)
Hx: sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → (let (i, li) := VLSM.l item in vvalid (IM i) li (sx i, input item)) ∧ (let (i, li) := VLSM.l item in let (si', om') := vtransition (IM i) li (sx i, input item) in (state_update IM sx i si', om')) = (destination item, output item)
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = Some ([item], final_descriptors')
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ foldr (equivocators_trace_project_folder IM) foldx tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
H: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is tr: _composite_state (equivocator_IM IM)
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
final_descriptors': equivocator_descriptors IM
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (None, final_descriptors')
Hitemx: True
Hx: equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr')
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = Some ([], final_descriptors')
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ foldr (equivocators_trace_project_folder IM) foldx tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
H: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is tr: _composite_state (equivocator_IM IM)
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
final_descriptors': equivocator_descriptors IM
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
item: composite_transition_item IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
Hitemx: ( Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l item) ∧ iom = input item ∧ oom = output item ∧ equivocators_state_project IM final_descriptors s = destination item ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l)
Hx: sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → (let (i, li) := VLSM.l item in vvalid (IM i) li (sx i, input item)) ∧ (let (i, li) := VLSM.l item in let (si', om') := vtransition (IM i) li (sx i, input item) in (state_update IM sx i si', om')) = (destination item, output item)
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = Some ([item], final_descriptors')
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ foldr (equivocators_trace_project_folder IM) foldx tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
H: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is tr: _composite_state (equivocator_IM IM)
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
final_descriptors': equivocator_descriptors IM
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
item: composite_transition_item IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
Hitemx: ( Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l item) ∧ iom = input item ∧ oom = output item ∧ equivocators_state_project IM final_descriptors s = destination item ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l)
Hx: sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → (let (i, li) := VLSM.l item in vvalid (IM i) li (sx i, input item)) ∧ (let (i, li) := VLSM.l item in let (si', om') := vtransition (IM i) li (sx i, input item) in (state_update IM sx i si', om')) = (destination item, output item)
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = Some ([item], final_descriptors')
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ foldr (equivocators_trace_project_folder IM) foldx tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
H: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is tr: _composite_state (equivocator_IM IM)
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
final_descriptors': equivocator_descriptors IM
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
item: composite_transition_item IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l item
Hinput: iom = input item
Houtput: oom = output item
Hdestination: equivocators_state_project IM final_descriptors s = destination item
Hx: sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → (let (i, li) := VLSM.l item in vvalid (IM i) li (sx i, input item)) ∧ (let (i, li) := VLSM.l item in let (si', om') := vtransition (IM i) li (sx i, input item) in (state_update IM sx i si', om')) = (destination item, output item)
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = Some ([item], final_descriptors')
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ foldr (equivocators_trace_project_folder IM) foldx tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
H: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is tr: _composite_state (equivocator_IM IM)
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
final_descriptors': equivocator_descriptors IM
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
item: composite_transition_item IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l item
Hinput: iom = input item
Houtput: oom = output item
Hdestination: equivocators_state_project IM final_descriptors s = destination item
Hx: (let (i, li) := VLSM.l item in vvalid (IM i) li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input item)) ∧ (let (i, li) := VLSM.l item in let (si', om') := vtransition (IM i) li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input item) in (state_update IM (equivocators_state_project IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (destination item, output item)
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = Some ([item], final_descriptors')
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ foldr (equivocators_trace_project_folder IM) foldx tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
H: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is tr: _composite_state (equivocator_IM IM)
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
final_descriptors': equivocator_descriptors IM
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
item: composite_transition_item IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l item
Hinput: iom = input item
Houtput: oom = output item
Hdestination: equivocators_state_project IM final_descriptors s = destination item
Hvx: let (i, li) := VLSM.l item in vvalid (IM i) li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input item)
Htx: (let (i, li) := VLSM.l item in let (si', om') := vtransition (IM i) li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input item) in (state_update IM (equivocators_state_project IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (destination item, output item)
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = Some ([item], final_descriptors')
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ foldr (equivocators_trace_project_folder IM) foldx tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
H: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is tr: _composite_state (equivocator_IM IM)
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
final_descriptors': equivocator_descriptors IM
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
item: composite_transition_item IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l item
Hinput: iom = input item
Houtput: oom = output item
Hdestination: equivocators_state_project IM final_descriptors s = destination item
Hvx: let (i, li) := VLSM.l item in vvalid (IM i) li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input item)
Htx: (let (i, li) := VLSM.l item in let (si', om') := vtransition (IM i) li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input item) in (state_update IM (equivocators_state_project IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (destination item, output item)
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = Some ([item], final_descriptors')
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is

proper_fixed_equivocator_descriptors initial_descriptors is ∧ foldr (equivocators_trace_project_folder IM) foldx tr' = Some (trX' ++ [item], initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) (trX' ++ [item]) ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) (trX' ++ [item])
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
H: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is tr: _composite_state (equivocator_IM IM)
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
final_descriptors': equivocator_descriptors IM
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
item: composite_transition_item IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l item
Hinput: iom = input item
Houtput: oom = output item
Hdestination: equivocators_state_project IM final_descriptors s = destination item
Hvx: let (i, li) := VLSM.l item in vvalid (IM i) li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input item)
Htx: (let (i, li) := VLSM.l item in let (si', om') := vtransition (IM i) li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input item) in (state_update IM (equivocators_state_project IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (destination item, output item)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is

proper_fixed_equivocator_descriptors initial_descriptors is ∧ foldr (equivocators_trace_project_folder IM) (Some ([item], final_descriptors')) tr' = Some (trX' ++ [item], initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) (trX' ++ [item]) ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) (trX' ++ [item])
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
H: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is tr: _composite_state (equivocator_IM IM)
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
final_descriptors': equivocator_descriptors IM
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
item: composite_transition_item IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l item
Hinput: iom = input item
Houtput: oom = output item
Hdestination: equivocators_state_project IM final_descriptors s = destination item
Hvx: let (i, li) := VLSM.l item in vvalid (IM i) li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input item)
Htx: (let (i, li) := VLSM.l item in let (si', om') := vtransition (IM i) li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input item) in (state_update IM (equivocators_state_project IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (destination item, output item)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is

proper_fixed_equivocator_descriptors initial_descriptors is ∧ Some (trX' ++ [item], initial_descriptors) = Some (trX' ++ [item], initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) (trX' ++ [item]) ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) (trX' ++ [item])
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
H: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is tr: _composite_state (equivocator_IM IM)
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
final_descriptors': equivocator_descriptors IM
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
item: composite_transition_item IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l item
Hinput: iom = input item
Houtput: oom = output item
Hdestination: equivocators_state_project IM final_descriptors s = destination item
Hvx: let (i, li) := VLSM.l item in vvalid (IM i) li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input item)
Htx: (let (i, li) := VLSM.l item in let (si', om') := vtransition (IM i) li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input item) in (state_update IM (equivocators_state_project IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (destination item, output item)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is

Some (trX' ++ [item], initial_descriptors) = Some (trX' ++ [item], initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) (trX' ++ [item]) ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) (trX' ++ [item])
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
H: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is tr: _composite_state (equivocator_IM IM)
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
final_descriptors': equivocator_descriptors IM
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
item: composite_transition_item IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l item
Hinput: iom = input item
Houtput: oom = output item
Hdestination: equivocators_state_project IM final_descriptors s = destination item
Hvx: let (i, li) := VLSM.l item in vvalid (IM i) li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input item)
Htx: (let (i, li) := VLSM.l item in let (si', om') := vtransition (IM i) li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input item) in (state_update IM (equivocators_state_project IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (destination item, output item)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is

equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) (trX' ++ [item]) ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) (trX' ++ [item])
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
H: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is tr: _composite_state (equivocator_IM IM)
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
final_descriptors': equivocator_descriptors IM
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
item: composite_transition_item IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l item
Hinput: iom = input item
Houtput: oom = output item
Hdestination: equivocators_state_project IM final_descriptors s = destination item
Hvx: let (i, li) := VLSM.l item in vvalid (IM i) li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input item)
Htx: (let (i, li) := VLSM.l item in let (si', om') := vtransition (IM i) li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input item) in (state_update IM (equivocators_state_project IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (destination item, output item)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is

equivocators_state_project IM final_descriptors final_state = destination item ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) (trX' ++ [item])
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
H: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is tr: _composite_state (equivocator_IM IM)
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
final_descriptors': equivocator_descriptors IM
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
item: composite_transition_item IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l item
Hinput: iom = input item
Houtput: oom = output item
Hdestination: equivocators_state_project IM final_descriptors s = destination item
Hvx: let (i, li) := VLSM.l item in vvalid (IM i) li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input item)
Htx: (let (i, li) := VLSM.l item in let (si', om') := vtransition (IM i) li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input item) in (state_update IM (equivocators_state_project IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (destination item, output item)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is

equivocators_state_project IM final_descriptors (finite_trace_last is tr) = destination item ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) (trX' ++ [item])
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
H: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]): _composite_state (equivocator_IM IM)
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
final_descriptors': equivocator_descriptors IM
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
item: composite_transition_item IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l item
Hinput: iom = input item
Houtput: oom = output item
Hdestination: equivocators_state_project IM final_descriptors s = destination item
Hvx: let (i, li) := VLSM.l item in vvalid (IM i) li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input item)
Htx: (let (i, li) := VLSM.l item in let (si', om') := vtransition (IM i) li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input item) in (state_update IM (equivocators_state_project IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (destination item, output item)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is

equivocators_state_project IM final_descriptors (finite_trace_last is (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}])) = destination item ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) (trX' ++ [item])
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
H: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]): _composite_state (equivocator_IM IM)
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
final_descriptors': equivocator_descriptors IM
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
item: composite_transition_item IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l item
Hinput: iom = input item
Houtput: oom = output item
Hdestination: equivocators_state_project IM final_descriptors s = destination item
Hvx: let (i, li) := VLSM.l item in vvalid (IM i) li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input item)
Htx: (let (i, li) := VLSM.l item in let (si', om') := vtransition (IM i) li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input item) in (state_update IM (equivocators_state_project IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (destination item, output item)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is

equivocators_state_project IM final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = destination item ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) (trX' ++ [item])
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
H: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]): _composite_state (equivocator_IM IM)
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
final_descriptors': equivocator_descriptors IM
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
item: composite_transition_item IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l item
Hinput: iom = input item
Houtput: oom = output item
Hdestination: equivocators_state_project IM final_descriptors s = destination item
Hvx: let (i, li) := VLSM.l item in vvalid (IM i) li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input item)
Htx: (let (i, li) := VLSM.l item in let (si', om') := vtransition (IM i) li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input item) in (state_update IM (equivocators_state_project IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (destination item, output item)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is

finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) (trX' ++ [item])
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
H: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]): _composite_state (equivocator_IM IM)
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
final_descriptors': equivocator_descriptors IM
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
item: composite_transition_item IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l item
Hinput: iom = input item
Houtput: oom = output item
Hdestination: equivocators_state_project IM final_descriptors s = destination item
Hvx: let (i, li) := VLSM.l item in vvalid (IM i) li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input item)
Htx: (let (i, li) := VLSM.l item in let (si', om') := vtransition (IM i) li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input item) in (state_update IM (equivocators_state_project IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (destination item, output item)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is

finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) (trX' ++ [item])
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
H: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]): _composite_state (equivocator_IM IM)
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
final_descriptors': equivocator_descriptors IM
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
item: composite_transition_item IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l item
Hinput: iom = input item
Houtput: oom = output item
Hdestination: equivocators_state_project IM final_descriptors s = destination item
Hvx: let (i, li) := VLSM.l item in vvalid (IM i) li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input item)
Htx: (let (i, li) := VLSM.l item in let (si', om') := vtransition (IM i) li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input item) in (state_update IM (equivocators_state_project IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (destination item, output item)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is

finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) (trX' ++ [item])
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
H: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]): _composite_state (equivocator_IM IM)
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
final_descriptors': equivocator_descriptors IM
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
item: composite_transition_item IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l item
Hinput: iom = input item
Houtput: oom = output item
Hdestination: equivocators_state_project IM final_descriptors s = destination item
Hvx: let (i, li) := VLSM.l item in vvalid (IM i) li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input item)
Htx: (let (i, li) := VLSM.l item in let (si', om') := vtransition (IM i) li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input item) in (state_update IM (equivocators_state_project IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (destination item, output item)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is

finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX' ∧ finite_valid_trace_from X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') [item]
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
H: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]): _composite_state (equivocator_IM IM)
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
final_descriptors': equivocator_descriptors IM
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
item: composite_transition_item IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l item
Hinput: iom = input item
Houtput: oom = output item
Hdestination: equivocators_state_project IM final_descriptors s = destination item
Hvx: let (i, li) := VLSM.l item in vvalid (IM i) li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input item)
Htx: (let (i, li) := VLSM.l item in let (si', om') := vtransition (IM i) li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input item) in (state_update IM (equivocators_state_project IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (destination item, output item)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is

finite_valid_trace_from X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') [item]
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
H: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]): _composite_state (equivocator_IM IM)
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
final_descriptors': equivocator_descriptors IM
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
item: composite_transition_item IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l item
Hinput: iom = input item
Houtput: oom = output item
Hdestination: equivocators_state_project IM final_descriptors s = destination item
Hvx: let (i, li) := VLSM.l item in vvalid (IM i) li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input item)
Htx: (let (i, li) := VLSM.l item in let (si', om') := vtransition (IM i) li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input item) in (state_update IM (equivocators_state_project IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (destination item, output item)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is

finite_valid_trace_from X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') ([] ++ [item])
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
H: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]): _composite_state (equivocator_IM IM)
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
final_descriptors': equivocator_descriptors IM
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
item: composite_transition_item IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l item
Hinput: iom = input item
Houtput: oom = output item
Hdestination: equivocators_state_project IM final_descriptors s = destination item
Hvx: let (i, li) := VLSM.l item in vvalid (IM i) li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input item)
Htx: (let (i, li) := VLSM.l item in let (si', om') := vtransition (IM i) li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input item) in (state_update IM (equivocators_state_project IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (destination item, output item)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
lst: state
Heqlst: lst = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'

finite_valid_trace_from X' lst ([] ++ [item])
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
H: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]): _composite_state (equivocator_IM IM)
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
final_descriptors': equivocator_descriptors IM
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
l0: label
input: option message
destination: state
output: option message
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some {| l := l0; input := input; destination := destination; output := output |}, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l {| l := l0; input := input; destination := destination; output := output |}
Hinput: iom = VLSM.input {| l := l0; input := input; destination := destination; output := output |}
Houtput: oom = VLSM.output {| l := l0; input := input; destination := destination; output := output |}
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := input; destination := destination; output := output |}
Hvx: let (i, li) := VLSM.l {| l := l0; input := input; destination := destination; output := output |} in vvalid (IM i) li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, VLSM.input {| l := l0; input := input; destination := destination; output := output |})
Htx: (let (i, li) := VLSM.l {| l := l0; input := input; destination := destination; output := output |} in let (si', om') := vtransition (IM i) li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, VLSM.input {| l := l0; input := input; destination := destination; output := output |}) in (state_update IM (equivocators_state_project IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (VLSM.destination {| l := l0; input := input; destination := destination; output := output |}, VLSM.output {| l := l0; input := input; destination := destination; output := output |})
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
lst: state
Heqlst: lst = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'

finite_valid_trace_from X' lst ([] ++ [{| l := l0; input := input; destination := destination; output := output |}])
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
H: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]): _composite_state (equivocator_IM IM)
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
final_descriptors': equivocator_descriptors IM
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
l0: label
input: option message
destination: state
output: option message
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some {| l := l0; input := input; destination := destination; output := output |}, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l {| l := l0; input := input; destination := destination; output := output |}
Hinput: iom = VLSM.input {| l := l0; input := input; destination := destination; output := output |}
Houtput: oom = VLSM.output {| l := l0; input := input; destination := destination; output := output |}
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := input; destination := destination; output := output |}
Hvx: let (i, li) := VLSM.l {| l := l0; input := input; destination := destination; output := output |} in vvalid (IM i) li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, VLSM.input {| l := l0; input := input; destination := destination; output := output |})
Htx: (let (i, li) := VLSM.l {| l := l0; input := input; destination := destination; output := output |} in let (si', om') := vtransition (IM i) li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, VLSM.input {| l := l0; input := input; destination := destination; output := output |}) in (state_update IM (equivocators_state_project IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (VLSM.destination {| l := l0; input := input; destination := destination; output := output |}, VLSM.output {| l := l0; input := input; destination := destination; output := output |})
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
lst: state
Heqlst: lst = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'

valid_state_prop X' lst
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
H: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]): _composite_state (equivocator_IM IM)
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
final_descriptors': equivocator_descriptors IM
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
l0: label
input: option message
destination: state
output: option message
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some {| l := l0; input := input; destination := destination; output := output |}, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l {| l := l0; input := input; destination := destination; output := output |}
Hinput: iom = VLSM.input {| l := l0; input := input; destination := destination; output := output |}
Houtput: oom = VLSM.output {| l := l0; input := input; destination := destination; output := output |}
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := input; destination := destination; output := output |}
Hvx: let (i, li) := VLSM.l {| l := l0; input := input; destination := destination; output := output |} in vvalid (IM i) li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, VLSM.input {| l := l0; input := input; destination := destination; output := output |})
Htx: (let (i, li) := VLSM.l {| l := l0; input := input; destination := destination; output := output |} in let (si', om') := vtransition (IM i) li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, VLSM.input {| l := l0; input := input; destination := destination; output := output |}) in (state_update IM (equivocators_state_project IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (VLSM.destination {| l := l0; input := input; destination := destination; output := output |}, VLSM.output {| l := l0; input := input; destination := destination; output := output |})
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
lst: state
Heqlst: lst = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
Hplst: valid_state_prop X' lst
finite_valid_trace_from X' lst ([] ++ [{| l := l0; input := input; destination := destination; output := output |}])
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
H: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]): _composite_state (equivocator_IM IM)
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
final_descriptors': equivocator_descriptors IM
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
l0: label
input: option message
destination: state
output: option message
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some {| l := l0; input := input; destination := destination; output := output |}, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l {| l := l0; input := input; destination := destination; output := output |}
Hinput: iom = VLSM.input {| l := l0; input := input; destination := destination; output := output |}
Houtput: oom = VLSM.output {| l := l0; input := input; destination := destination; output := output |}
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := input; destination := destination; output := output |}
Hvx: let (i, li) := VLSM.l {| l := l0; input := input; destination := destination; output := output |} in vvalid (IM i) li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, VLSM.input {| l := l0; input := input; destination := destination; output := output |})
Htx: (let (i, li) := VLSM.l {| l := l0; input := input; destination := destination; output := output |} in let (si', om') := vtransition (IM i) li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, VLSM.input {| l := l0; input := input; destination := destination; output := output |}) in (state_update IM (equivocators_state_project IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (VLSM.destination {| l := l0; input := input; destination := destination; output := output |}, VLSM.output {| l := l0; input := input; destination := destination; output := output |})
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
lst: state
Heqlst: lst = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'

valid_state_prop X' lst
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
H: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]): _composite_state (equivocator_IM IM)
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
final_descriptors': equivocator_descriptors IM
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
l0: label
input: option message
destination: state
output: option message
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some {| l := l0; input := input; destination := destination; output := output |}, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l {| l := l0; input := input; destination := destination; output := output |}
Hinput: iom = VLSM.input {| l := l0; input := input; destination := destination; output := output |}
Houtput: oom = VLSM.output {| l := l0; input := input; destination := destination; output := output |}
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := input; destination := destination; output := output |}
Hvx: let (i, li) := VLSM.l {| l := l0; input := input; destination := destination; output := output |} in vvalid (IM i) li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, VLSM.input {| l := l0; input := input; destination := destination; output := output |})
Htx: (let (i, li) := VLSM.l {| l := l0; input := input; destination := destination; output := output |} in let (si', om') := vtransition (IM i) li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, VLSM.input {| l := l0; input := input; destination := destination; output := output |}) in (state_update IM (equivocators_state_project IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (VLSM.destination {| l := l0; input := input; destination := destination; output := output |}, VLSM.output {| l := l0; input := input; destination := destination; output := output |})
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
lst: state
Heqlst: lst = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'

valid_state_prop X' lst
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
s: _composite_state (equivocator_IM IM)
l0: label
input: option message
destination: state
output: option message
final_descriptors, final_descriptors': equivocator_descriptors IM
H: y : nat, y < length (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := input; destination := destination; output := output |} |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := input; destination := destination; output := output |} |}]): _composite_state (equivocator_IM IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := VLSM.input {| l := l0; input := input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := input; destination := destination; output := output |} |} = Some (Some {| l := l0; input := input; destination := destination; output := output |}, final_descriptors')
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: transition l (finite_trace_last is tr', VLSM.input {| l := l0; input := input; destination := destination; output := output |}) = (s, VLSM.output {| l := l0; input := input; destination := destination; output := output |})
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is tr', VLSM.input {| l := l0; input := input; destination := destination; output := output |})
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', VLSM.input {| l := l0; input := input; destination := destination; output := output |})
Hiom: option_valid_message_prop XE (VLSM.input {| l := l0; input := input; destination := destination; output := output |})
Hinit: composite_initial_state_prop (equivocator_IM IM) is
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l {| l := l0; input := input; destination := destination; output := output |}
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := input; destination := destination; output := output |}
Hvx: let (i, li) := VLSM.l {| l := l0; input := input; destination := destination; output := output |} in vvalid (IM i) li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, VLSM.input {| l := l0; input := input; destination := destination; output := output |})
Htx: (let (i, li) := VLSM.l {| l := l0; input := input; destination := destination; output := output |} in let (si', om') := vtransition (IM i) li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, VLSM.input {| l := l0; input := input; destination := destination; output := output |}) in (state_update IM (equivocators_state_project IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (VLSM.destination {| l := l0; input := input; destination := destination; output := output |}, VLSM.output {| l := l0; input := input; destination := destination; output := output |})
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is

valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')
assumption.
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
H: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]): _composite_state (equivocator_IM IM)
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
final_descriptors': equivocator_descriptors IM
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
l0: label
input: option message
destination: state
output: option message
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some {| l := l0; input := input; destination := destination; output := output |}, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l {| l := l0; input := input; destination := destination; output := output |}
Hinput: iom = VLSM.input {| l := l0; input := input; destination := destination; output := output |}
Houtput: oom = VLSM.output {| l := l0; input := input; destination := destination; output := output |}
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := input; destination := destination; output := output |}
Hvx: let (i, li) := VLSM.l {| l := l0; input := input; destination := destination; output := output |} in vvalid (IM i) li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, VLSM.input {| l := l0; input := input; destination := destination; output := output |})
Htx: (let (i, li) := VLSM.l {| l := l0; input := input; destination := destination; output := output |} in let (si', om') := vtransition (IM i) li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, VLSM.input {| l := l0; input := input; destination := destination; output := output |}) in (state_update IM (equivocators_state_project IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (VLSM.destination {| l := l0; input := input; destination := destination; output := output |}, VLSM.output {| l := l0; input := input; destination := destination; output := output |})
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
lst: state
Heqlst: lst = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
Hplst: valid_state_prop X' lst

finite_valid_trace_from X' lst ([] ++ [{| l := l0; input := input; destination := destination; output := output |}])
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
H: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]): _composite_state (equivocator_IM IM)
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
final_descriptors': equivocator_descriptors IM
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
l0: label
input: option message
destination: state
output: option message
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some {| l := l0; input := input; destination := destination; output := output |}, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l {| l := l0; input := input; destination := destination; output := output |}
Hinput: iom = VLSM.input {| l := l0; input := input; destination := destination; output := output |}
Houtput: oom = VLSM.output {| l := l0; input := input; destination := destination; output := output |}
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := input; destination := destination; output := output |}
Hvx: let (i, li) := VLSM.l {| l := l0; input := input; destination := destination; output := output |} in vvalid (IM i) li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, VLSM.input {| l := l0; input := input; destination := destination; output := output |})
Htx: (let (i, li) := VLSM.l {| l := l0; input := input; destination := destination; output := output |} in let (si', om') := vtransition (IM i) li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, VLSM.input {| l := l0; input := input; destination := destination; output := output |}) in (state_update IM (equivocators_state_project IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (VLSM.destination {| l := l0; input := input; destination := destination; output := output |}, VLSM.output {| l := l0; input := input; destination := destination; output := output |})
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
lst: state
Heqlst: lst = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
Hplst: valid_state_prop X' lst

input_valid_transition X' l0 (finite_trace_last lst [], input) (destination, output)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
H: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]): _composite_state (equivocator_IM IM)
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
final_descriptors': equivocator_descriptors IM
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
l0: label
input: option message
destination: state
output: option message
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some {| l := l0; input := input; destination := destination; output := output |}, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hinput: iom = VLSM.input {| l := l0; input := input; destination := destination; output := output |}
Houtput: oom = VLSM.output {| l := l0; input := input; destination := destination; output := output |}
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := input; destination := destination; output := output |}
Hvx: let (i, li) := VLSM.l {| l := l0; input := input; destination := destination; output := output |} in vvalid (IM i) li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, VLSM.input {| l := l0; input := input; destination := destination; output := output |})
Htx: (let (i, li) := VLSM.l {| l := l0; input := input; destination := destination; output := output |} in let (si', om') := vtransition (IM i) li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, VLSM.input {| l := l0; input := input; destination := destination; output := output |}) in (state_update IM (equivocators_state_project IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (VLSM.destination {| l := l0; input := input; destination := destination; output := output |}, VLSM.output {| l := l0; input := input; destination := destination; output := output |})
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
lst: state
Heqlst: lst = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
Hplst: valid_state_prop X' lst

input_valid_transition X' l0 (finite_trace_last lst [], input) (destination, output)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
s: _composite_state (equivocator_IM IM)
l0: label
input: option message
destination: state
output: option message
final_descriptors, final_descriptors': equivocator_descriptors IM
H: y : nat, y < length (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := input; destination := destination; output := output |} |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := input; destination := destination; output := output |} |}]): _composite_state (equivocator_IM IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := VLSM.input {| l := l0; input := input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := input; destination := destination; output := output |} |} = Some (Some {| l := l0; input := input; destination := destination; output := output |}, final_descriptors')
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: transition l (finite_trace_last is tr', VLSM.input {| l := l0; input := input; destination := destination; output := output |}) = (s, VLSM.output {| l := l0; input := input; destination := destination; output := output |})
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is tr', VLSM.input {| l := l0; input := input; destination := destination; output := output |})
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', VLSM.input {| l := l0; input := input; destination := destination; output := output |})
Hiom: option_valid_message_prop XE (VLSM.input {| l := l0; input := input; destination := destination; output := output |})
Hinit: composite_initial_state_prop (equivocator_IM IM) is
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := input; destination := destination; output := output |}
Hvx: let (i, li) := VLSM.l {| l := l0; input := input; destination := destination; output := output |} in vvalid (IM i) li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, VLSM.input {| l := l0; input := input; destination := destination; output := output |})
Htx: (let (i, li) := VLSM.l {| l := l0; input := input; destination := destination; output := output |} in let (si', om') := vtransition (IM i) li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, VLSM.input {| l := l0; input := input; destination := destination; output := output |}) in (state_update IM (equivocators_state_project IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (VLSM.destination {| l := l0; input := input; destination := destination; output := output |}, VLSM.output {| l := l0; input := input; destination := destination; output := output |})
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')

input_valid_transition X' l0 (finite_trace_last (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') [], input) (destination, output)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
s: _composite_state (equivocator_IM IM)
l0: label
input: option message
destination: state
output: option message
final_descriptors, final_descriptors': equivocator_descriptors IM
H: y : nat, y < length (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := input; destination := destination; output := output |} |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := input; destination := destination; output := output |} |}]): _composite_state (equivocator_IM IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := VLSM.input {| l := l0; input := input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := input; destination := destination; output := output |} |} = Some (Some {| l := l0; input := input; destination := destination; output := output |}, final_descriptors')
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: transition l (finite_trace_last is tr', VLSM.input {| l := l0; input := input; destination := destination; output := output |}) = (s, VLSM.output {| l := l0; input := input; destination := destination; output := output |})
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is tr', input)
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', VLSM.input {| l := l0; input := input; destination := destination; output := output |})
Hiom: option_valid_message_prop XE (VLSM.input {| l := l0; input := input; destination := destination; output := output |})
Hinit: composite_initial_state_prop (equivocator_IM IM) is
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := input; destination := destination; output := output |}
Hvx: let (i, li) := VLSM.l {| l := l0; input := input; destination := destination; output := output |} in vvalid (IM i) li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, VLSM.input {| l := l0; input := input; destination := destination; output := output |})
Htx: (let (i, li) := VLSM.l {| l := l0; input := input; destination := destination; output := output |} in let (si', om') := vtransition (IM i) li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, VLSM.input {| l := l0; input := input; destination := destination; output := output |}) in (state_update IM (equivocators_state_project IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (VLSM.destination {| l := l0; input := input; destination := destination; output := output |}, VLSM.output {| l := l0; input := input; destination := destination; output := output |})
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')

input_valid_transition X' l0 (finite_trace_last (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') [], input) (destination, output)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
s: _composite_state (equivocator_IM IM)
l0: label
input: option message
destination: state
output: option message
final_descriptors, final_descriptors': equivocator_descriptors IM
H: y : nat, y < length (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := input; destination := destination; output := output |} |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := input; destination := destination; output := output |} |}]): _composite_state (equivocator_IM IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := VLSM.input {| l := l0; input := input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := input; destination := destination; output := output |} |} = Some (Some {| l := l0; input := input; destination := destination; output := output |}, final_descriptors')
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: transition l (finite_trace_last is tr', VLSM.input {| l := l0; input := input; destination := destination; output := output |}) = (s, VLSM.output {| l := l0; input := input; destination := destination; output := output |})
Hno_equiv: composite_no_equivocations (equivocator_IM IM) (equivocator_Hbs IM Hbs) l (finite_trace_last is tr', input)
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', VLSM.input {| l := l0; input := input; destination := destination; output := output |})
Hiom: option_valid_message_prop XE (VLSM.input {| l := l0; input := input; destination := destination; output := output |})
Hinit: composite_initial_state_prop (equivocator_IM IM) is
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := input; destination := destination; output := output |}
Hvx: let (i, li) := VLSM.l {| l := l0; input := input; destination := destination; output := output |} in vvalid (IM i) li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, VLSM.input {| l := l0; input := input; destination := destination; output := output |})
Htx: (let (i, li) := VLSM.l {| l := l0; input := input; destination := destination; output := output |} in let (si', om') := vtransition (IM i) li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, VLSM.input {| l := l0; input := input; destination := destination; output := output |}) in (state_update IM (equivocators_state_project IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (VLSM.destination {| l := l0; input := input; destination := destination; output := output |}, VLSM.output {| l := l0; input := input; destination := destination; output := output |})
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')

input_valid_transition X' l0 (finite_trace_last (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') [], input) (destination, output)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
s: _composite_state (equivocator_IM IM)
l0: label
input: option message
destination: state
output: option message
final_descriptors, final_descriptors': equivocator_descriptors IM
H: y : nat, y < length (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := input; destination := destination; output := output |} |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := input; destination := destination; output := output |} |}]): _composite_state (equivocator_IM IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := VLSM.input {| l := l0; input := input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := input; destination := destination; output := output |} |} = Some (Some {| l := l0; input := input; destination := destination; output := output |}, final_descriptors')
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: transition l (finite_trace_last is tr', VLSM.input {| l := l0; input := input; destination := destination; output := output |}) = (s, VLSM.output {| l := l0; input := input; destination := destination; output := output |})
Hno_equiv: composite_no_equivocations (equivocator_IM IM) (equivocator_Hbs IM Hbs) l (finite_trace_last is tr', input)
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', VLSM.input {| l := l0; input := input; destination := destination; output := output |})
Hiom: option_valid_message_prop XE (VLSM.input {| l := l0; input := input; destination := destination; output := output |})
Hinit: composite_initial_state_prop (equivocator_IM IM) is
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := input; destination := destination; output := output |}
Hvx: let (i, li) := l0 in vvalid (IM i) li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (IM i) li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input) in (state_update IM (equivocators_state_project IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')

input_valid_transition X' l0 (finite_trace_last (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') [], input) (destination, output)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
s: _composite_state (equivocator_IM IM)
l0: label
input: option message
destination: state
output: option message
final_descriptors, final_descriptors': equivocator_descriptors IM
H: y : nat, y < length (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := input; destination := destination; output := output |} |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := input; destination := destination; output := output |} |}]): _composite_state (equivocator_IM IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := VLSM.input {| l := l0; input := input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := input; destination := destination; output := output |} |} = Some (Some {| l := l0; input := input; destination := destination; output := output |}, final_descriptors')
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: transition l (finite_trace_last is tr', VLSM.input {| l := l0; input := input; destination := destination; output := output |}) = (s, VLSM.output {| l := l0; input := input; destination := destination; output := output |})
Hno_equiv: composite_no_equivocations (equivocator_IM IM) (equivocator_Hbs IM Hbs) l (finite_trace_last is tr', input)
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', VLSM.input {| l := l0; input := input; destination := destination; output := output |})
Hiom: option_valid_message_prop XE (VLSM.input {| l := l0; input := input; destination := destination; output := output |})
Hinit: composite_initial_state_prop (equivocator_IM IM) is
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := input; destination := destination; output := output |}
Hvx: let (i, li) := l0 in vvalid (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')

input_valid_transition X' l0 (finite_trace_last (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') [], input) (destination, output)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
s: _composite_state (equivocator_IM IM)
l0: label
input: message
destination: state
output: option message
final_descriptors, final_descriptors': equivocator_descriptors IM
H: y : nat, y < length (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]): _composite_state (equivocator_IM IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: transition l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}) = (s, VLSM.output {| l := l0; input := Some input; destination := destination; output := output |})
Hno_equiv: composite_no_equivocations (equivocator_IM IM) (equivocator_Hbs IM Hbs) l (finite_trace_last is tr', Some input)
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hiom: option_valid_message_prop XE (VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hinit: composite_initial_state_prop (equivocator_IM IM) is
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := Some input; destination := destination; output := output |}
Hvx: let (i, li) := l0 in vvalid (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')

input_valid_transition X' l0 (finite_trace_last (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') [], Some input) (destination, output)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
s: _composite_state (equivocator_IM IM)
l0: label
input: message
destination: state
output: option message
final_descriptors, final_descriptors': equivocator_descriptors IM
H: y : nat, y < length (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]): _composite_state (equivocator_IM IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: transition l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}) = (s, VLSM.output {| l := l0; input := Some input; destination := destination; output := output |})
Hno_equiv: composite_no_equivocations (equivocator_IM IM) (equivocator_Hbs IM Hbs) l (finite_trace_last is tr', Some input)
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hiom: option_valid_message_prop XE (VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hinit: composite_initial_state_prop (equivocator_IM IM) is
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := Some input; destination := destination; output := output |}
Hvx: let (i, li) := l0 in vvalid (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')

input_valid_transition X' l0 (finite_trace_last (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') [], Some input) (destination, output)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
s: _composite_state (equivocator_IM IM)
l0: label
input: message
destination: state
output: option message
final_descriptors, final_descriptors': equivocator_descriptors IM
H: y : nat, y < length (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]): _composite_state (equivocator_IM IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: transition l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}) = (s, VLSM.output {| l := l0; input := Some input; destination := destination; output := output |})
Hno_equiv: False ∨ composite_has_been_sent (equivocator_IM IM) (equivocator_Hbs IM Hbs) (finite_trace_last is tr', Some input).1 input
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hiom: option_valid_message_prop XE (VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hinit: composite_initial_state_prop (equivocator_IM IM) is
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := Some input; destination := destination; output := output |}
Hvx: let (i, li) := l0 in vvalid (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')

input_valid_transition X' l0 (finite_trace_last (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') [], Some input) (destination, output)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
s: _composite_state (equivocator_IM IM)
l0: label
input: message
destination: state
output: option message
final_descriptors, final_descriptors': equivocator_descriptors IM
H: y : nat, y < length (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]): _composite_state (equivocator_IM IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: transition l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}) = (s, VLSM.output {| l := l0; input := Some input; destination := destination; output := output |})
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (equivocator_Hbs IM Hbs) (finite_trace_last is tr', Some input).1 input
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hiom: option_valid_message_prop XE (VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hinit: composite_initial_state_prop (equivocator_IM IM) is
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := Some input; destination := destination; output := output |}
Hvx: let (i, li) := l0 in vvalid (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')

input_valid_transition X' l0 (finite_trace_last (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') [], Some input) (destination, output)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
s: _composite_state (equivocator_IM IM)
l0: label
input: message
destination: state
output: option message
final_descriptors, final_descriptors': equivocator_descriptors IM
H: y : nat, y < length (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]): _composite_state (equivocator_IM IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: transition l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}) = (s, VLSM.output {| l := l0; input := Some input; destination := destination; output := output |})
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (equivocator_Hbs IM Hbs) (finite_trace_last is tr', Some input).1 input
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hiom: option_valid_message_prop XE (VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hinit: composite_initial_state_prop (equivocator_IM IM) is
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := Some input; destination := destination; output := output |}
Hvx: let (i, li) := l0 in vvalid (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')

valid_state_prop FreeE (finite_trace_last is tr')
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
s: _composite_state (equivocator_IM IM)
l0: label
input: message
destination: state
output: option message
final_descriptors, final_descriptors': equivocator_descriptors IM
H: y : nat, y < length (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]): _composite_state (equivocator_IM IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: transition l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}) = (s, VLSM.output {| l := l0; input := Some input; destination := destination; output := output |})
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (equivocator_Hbs IM Hbs) (finite_trace_last is tr', Some input).1 input
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hiom: option_valid_message_prop XE (VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hinit: composite_initial_state_prop (equivocator_IM IM) is
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := Some input; destination := destination; output := output |}
Hvx: let (i, li) := l0 in vvalid (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')
Hs_free: valid_state_prop FreeE (finite_trace_last is tr')
input_valid_transition X' l0 (finite_trace_last (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') [], Some input) (destination, output)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
s: _composite_state (equivocator_IM IM)
l0: label
input: message
destination: state
output: option message
final_descriptors, final_descriptors': equivocator_descriptors IM
H: y : nat, y < length (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]): _composite_state (equivocator_IM IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: transition l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}) = (s, VLSM.output {| l := l0; input := Some input; destination := destination; output := output |})
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (equivocator_Hbs IM Hbs) (finite_trace_last is tr', Some input).1 input
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hiom: option_valid_message_prop XE (VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hinit: composite_initial_state_prop (equivocator_IM IM) is
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := Some input; destination := destination; output := output |}
Hvx: let (i, li) := l0 in vvalid (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')

valid_state_prop FreeE (finite_trace_last is tr')
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
s: _composite_state (equivocator_IM IM)
l0: label
input: message
destination: state
output: option message
final_descriptors, final_descriptors': equivocator_descriptors IM
H: y : nat, y < length (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]): _composite_state (equivocator_IM IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Htr: finite_valid_trace_from XE is tr'
_om: option message
Hs: valid_state_message_prop XE (finite_trace_last is tr') _om
Ht: transition l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}) = (s, VLSM.output {| l := l0; input := Some input; destination := destination; output := output |})
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (equivocator_Hbs IM Hbs) (finite_trace_last is tr', Some input).1 input
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hiom: option_valid_message_prop XE (VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hinit: composite_initial_state_prop (equivocator_IM IM) is
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := Some input; destination := destination; output := output |}
Hvx: let (i, li) := l0 in vvalid (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')

valid_state_prop FreeE (finite_trace_last is tr')
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
s: _composite_state (equivocator_IM IM)
l0: label
input: message
destination: state
output: option message
final_descriptors, final_descriptors': equivocator_descriptors IM
H: y : nat, y < length (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]): _composite_state (equivocator_IM IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Htr: finite_valid_trace_from XE is tr'
_om: option message
Hs: valid_state_message_prop XE (finite_trace_last is tr') _om
Hs_free: valid_state_message_prop (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (finite_trace_last is tr') _om
Ht: transition l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}) = (s, VLSM.output {| l := l0; input := Some input; destination := destination; output := output |})
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (equivocator_Hbs IM Hbs) (finite_trace_last is tr', Some input).1 input
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hiom: option_valid_message_prop XE (VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hinit: composite_initial_state_prop (equivocator_IM IM) is
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := Some input; destination := destination; output := output |}
Hvx: let (i, li) := l0 in vvalid (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')

valid_state_prop FreeE (finite_trace_last is tr')
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
s: _composite_state (equivocator_IM IM)
l0: label
input: message
destination: state
output: option message
final_descriptors, final_descriptors': equivocator_descriptors IM
H: y : nat, y < length (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]): _composite_state (equivocator_IM IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Htr: finite_valid_trace_from XE is tr'
_om: option message
Hs: valid_state_message_prop XE (finite_trace_last is tr') _om
Hs_free: valid_state_message_prop (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (finite_trace_last is tr') _om
Ht: transition l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}) = (s, VLSM.output {| l := l0; input := Some input; destination := destination; output := output |})
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (equivocator_Hbs IM Hbs) (finite_trace_last is tr', Some input).1 input
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hiom: option_valid_message_prop XE (VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hinit: composite_initial_state_prop (equivocator_IM IM) is
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := Some input; destination := destination; output := output |}
Hvx: let (i, li) := l0 in vvalid (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')

valid_state_message_prop FreeE (finite_trace_last is tr') _om
assumption.
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
s: _composite_state (equivocator_IM IM)
l0: label
input: message
destination: state
output: option message
final_descriptors, final_descriptors': equivocator_descriptors IM
H: y : nat, y < length (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]): _composite_state (equivocator_IM IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: transition l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}) = (s, VLSM.output {| l := l0; input := Some input; destination := destination; output := output |})
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (equivocator_Hbs IM Hbs) (finite_trace_last is tr', Some input).1 input
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hiom: option_valid_message_prop XE (VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hinit: composite_initial_state_prop (equivocator_IM IM) is
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := Some input; destination := destination; output := output |}
Hvx: let (i, li) := l0 in vvalid (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')
Hs_free: valid_state_prop FreeE (finite_trace_last is tr')

input_valid_transition X' l0 (finite_trace_last (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') [], Some input) (destination, output)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
s: _composite_state (equivocator_IM IM)
l0: label
input: message
destination: state
output: option message
final_descriptors, final_descriptors': equivocator_descriptors IM
H: y : nat, y < length (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]): _composite_state (equivocator_IM IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: transition l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}) = (s, VLSM.output {| l := l0; input := Some input; destination := destination; output := output |})
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (equivocator_Hbs IM Hbs) (finite_trace_last is tr', Some input).1 input
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hiom: option_valid_message_prop XE (VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hinit: composite_initial_state_prop (equivocator_IM IM) is
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := Some input; destination := destination; output := output |}
Hvx: let (i, li) := l0 in vvalid (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')
Hs_free: valid_state_prop FreeE (finite_trace_last is tr')
Hall: specialized_selected_message_exists_in_all_traces FreeE (field_selector VLSM.output) (finite_trace_last is tr') input

input_valid_transition X' l0 (finite_trace_last (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') [], Some input) (destination, output)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
s: _composite_state (equivocator_IM IM)
l0: label
input: message
destination: state
output: option message
final_descriptors, final_descriptors': equivocator_descriptors IM
H: y : nat, y < length (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]): _composite_state (equivocator_IM IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: transition l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}) = (s, VLSM.output {| l := l0; input := Some input; destination := destination; output := output |})
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (equivocator_Hbs IM Hbs) (finite_trace_last is tr', Some input).1 input
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hiom: option_valid_message_prop XE (VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hinit: composite_initial_state_prop (equivocator_IM IM) is
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := Some input; destination := destination; output := output |}
Hvx: let (i, li) := l0 in vvalid (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')
Hs_free: valid_state_prop FreeE (finite_trace_last is tr')
Hall: trace_has_message (field_selector VLSM.output) input tr'

input_valid_transition X' l0 (finite_trace_last (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') [], Some input) (destination, output)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
s: _composite_state (equivocator_IM IM)
l0: label
input: message
destination: state
output: option message
final_descriptors, final_descriptors': equivocator_descriptors IM
H: y : nat, y < length (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]): _composite_state (equivocator_IM IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: transition l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}) = (s, VLSM.output {| l := l0; input := Some input; destination := destination; output := output |})
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (equivocator_Hbs IM Hbs) (finite_trace_last is tr', Some input).1 input
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hiom: option_valid_message_prop XE (VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hinit: composite_initial_state_prop (equivocator_IM IM) is
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := Some input; destination := destination; output := output |}
Hvx: let (i, li) := l0 in vvalid (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')
Hs_free: valid_state_prop FreeE (finite_trace_last is tr')
Hall: trace_has_message (field_selector VLSM.output) input tr'
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
_Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXm

input_valid_transition X' l0 (finite_trace_last (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') [], Some input) (destination, output)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
s: _composite_state (equivocator_IM IM)
l0: label
input: message
destination: state
output: option message
final_descriptors, final_descriptors': equivocator_descriptors IM
H: y : nat, y < length (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]): _composite_state (equivocator_IM IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: transition l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}) = (s, VLSM.output {| l := l0; input := Some input; destination := destination; output := output |})
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (equivocator_Hbs IM Hbs) (finite_trace_last is tr', Some input).1 input
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hiom: option_valid_message_prop XE (VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hinit: composite_initial_state_prop (equivocator_IM IM) is
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := Some input; destination := destination; output := output |}
Hvx: let (i, li) := l0 in vvalid (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')
Hs_free: valid_state_prop FreeE (finite_trace_last is tr')
Hall: trace_has_message (field_selector VLSM.output) input tr'
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
_Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXm

proper_fixed_equivocator_descriptors final_descriptors_m (finite_trace_last is tr')
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
s: _composite_state (equivocator_IM IM)
l0: label
input: message
destination: state
output: option message
final_descriptors, final_descriptors': equivocator_descriptors IM
H: y : nat, y < length (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]): _composite_state (equivocator_IM IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: transition l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}) = (s, VLSM.output {| l := l0; input := Some input; destination := destination; output := output |})
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (equivocator_Hbs IM Hbs) (finite_trace_last is tr', Some input).1 input
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hiom: option_valid_message_prop XE (VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hinit: composite_initial_state_prop (equivocator_IM IM) is
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := Some input; destination := destination; output := output |}
Hvx: let (i, li) := l0 in vvalid (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')
Hs_free: valid_state_prop FreeE (finite_trace_last is tr')
Hall: trace_has_message (field_selector VLSM.output) input tr'
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
_Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXm
Hfinal_descriptors_m: proper_fixed_equivocator_descriptors final_descriptors_m (finite_trace_last is tr')
input_valid_transition X' l0 (finite_trace_last (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') [], Some input) (destination, output)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
s: _composite_state (equivocator_IM IM)
l0: label
input: message
destination: state
output: option message
final_descriptors, final_descriptors': equivocator_descriptors IM
H: y : nat, y < length (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]): _composite_state (equivocator_IM IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: transition l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}) = (s, VLSM.output {| l := l0; input := Some input; destination := destination; output := output |})
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (equivocator_Hbs IM Hbs) (finite_trace_last is tr', Some input).1 input
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hiom: option_valid_message_prop XE (VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hinit: composite_initial_state_prop (equivocator_IM IM) is
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := Some input; destination := destination; output := output |}
Hvx: let (i, li) := l0 in vvalid (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')
Hs_free: valid_state_prop FreeE (finite_trace_last is tr')
Hall: trace_has_message (field_selector VLSM.output) input tr'
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
_Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXm

proper_fixed_equivocator_descriptors final_descriptors_m (finite_trace_last is tr')
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
s: _composite_state (equivocator_IM IM)
l0: label
input: message
destination: state
output: option message
final_descriptors, final_descriptors': equivocator_descriptors IM
H: y : nat, y < length (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]): _composite_state (equivocator_IM IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: transition l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}) = (s, VLSM.output {| l := l0; input := Some input; destination := destination; output := output |})
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (equivocator_Hbs IM Hbs) (finite_trace_last is tr', Some input).1 input
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hiom: option_valid_message_prop XE (VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hinit: composite_initial_state_prop (equivocator_IM IM) is
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := Some input; destination := destination; output := output |}
Hvx: let (i, li) := l0 in vvalid (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')
Hs_free: valid_state_prop FreeE (finite_trace_last is tr')
Hall: trace_has_message (field_selector VLSM.output) input tr'
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
_Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXm

valid_state_prop XE (finite_trace_last is tr')
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
s: _composite_state (equivocator_IM IM)
l0: label
input: message
destination: state
output: option message
final_descriptors, final_descriptors': equivocator_descriptors IM
H: y : nat, y < length (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]): _composite_state (equivocator_IM IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: transition l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}) = (s, VLSM.output {| l := l0; input := Some input; destination := destination; output := output |})
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (equivocator_Hbs IM Hbs) (finite_trace_last is tr', Some input).1 input
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hiom: option_valid_message_prop XE (VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hinit: composite_initial_state_prop (equivocator_IM IM) is
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := Some input; destination := destination; output := output |}
Hvx: let (i, li) := l0 in vvalid (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')
Hs_free: valid_state_prop FreeE (finite_trace_last is tr')
Hall: trace_has_message (field_selector VLSM.output) input tr'
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
_Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXm

finite_valid_trace_from XE is tr'
assumption.
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
s: _composite_state (equivocator_IM IM)
l0: label
input: message
destination: state
output: option message
final_descriptors, final_descriptors': equivocator_descriptors IM
H: y : nat, y < length (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]): _composite_state (equivocator_IM IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: transition l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}) = (s, VLSM.output {| l := l0; input := Some input; destination := destination; output := output |})
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (equivocator_Hbs IM Hbs) (finite_trace_last is tr', Some input).1 input
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hiom: option_valid_message_prop XE (VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hinit: composite_initial_state_prop (equivocator_IM IM) is
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := Some input; destination := destination; output := output |}
Hvx: let (i, li) := l0 in vvalid (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')
Hs_free: valid_state_prop FreeE (finite_trace_last is tr')
Hall: trace_has_message (field_selector VLSM.output) input tr'
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
_Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXm
Hfinal_descriptors_m: proper_fixed_equivocator_descriptors final_descriptors_m (finite_trace_last is tr')

input_valid_transition X' l0 (finite_trace_last (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') [], Some input) (destination, output)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
s: _composite_state (equivocator_IM IM)
l0: label
input: message
destination: state
output: option message
final_descriptors, final_descriptors': equivocator_descriptors IM
H: length tr' < length (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → length tr' = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]): _composite_state (equivocator_IM IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: transition l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}) = (s, VLSM.output {| l := l0; input := Some input; destination := destination; output := output |})
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (equivocator_Hbs IM Hbs) (finite_trace_last is tr', Some input).1 input
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hiom: option_valid_message_prop XE (VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hinit: composite_initial_state_prop (equivocator_IM IM) is
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := Some input; destination := destination; output := output |}
Hvx: let (i, li) := l0 in vvalid (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')
Hs_free: valid_state_prop FreeE (finite_trace_last is tr')
Hall: trace_has_message (field_selector VLSM.output) input tr'
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
_Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXm
Hfinal_descriptors_m: proper_fixed_equivocator_descriptors final_descriptors_m (finite_trace_last is tr')

input_valid_transition X' l0 (finite_trace_last (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') [], Some input) (destination, output)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
s: _composite_state (equivocator_IM IM)
l0: label
input: message
destination: state
output: option message
final_descriptors, final_descriptors': equivocator_descriptors IM
H: length tr' < length (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → length tr' = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]): _composite_state (equivocator_IM IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: transition l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}) = (s, VLSM.output {| l := l0; input := Some input; destination := destination; output := output |})
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (equivocator_Hbs IM Hbs) (finite_trace_last is tr', Some input).1 input
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hiom: option_valid_message_prop XE (VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hinit: composite_initial_state_prop (equivocator_IM IM) is
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := Some input; destination := destination; output := output |}
Hvx: let (i, li) := l0 in vvalid (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')
Hs_free: valid_state_prop FreeE (finite_trace_last is tr')
Hall: trace_has_message (field_selector VLSM.output) input tr'
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
_Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXm
Hfinal_descriptors_m: proper_fixed_equivocator_descriptors final_descriptors_m (finite_trace_last is tr')

length tr' < length (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}])
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
s: _composite_state (equivocator_IM IM)
l0: label
input: message
destination: state
output: option message
final_descriptors, final_descriptors': equivocator_descriptors IM
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]): _composite_state (equivocator_IM IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: transition l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}) = (s, VLSM.output {| l := l0; input := Some input; destination := destination; output := output |})
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (equivocator_Hbs IM Hbs) (finite_trace_last is tr', Some input).1 input
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hiom: option_valid_message_prop XE (VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hinit: composite_initial_state_prop (equivocator_IM IM) is
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := Some input; destination := destination; output := output |}
Hvx: let (i, li) := l0 in vvalid (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')
Hs_free: valid_state_prop FreeE (finite_trace_last is tr')
Hall: trace_has_message (field_selector VLSM.output) input tr'
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
_Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXm
Hfinal_descriptors_m: proper_fixed_equivocator_descriptors final_descriptors_m (finite_trace_last is tr')
H: tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → length tr' = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
input_valid_transition X' l0 (finite_trace_last (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') [], Some input) (destination, output)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
s: _composite_state (equivocator_IM IM)
l0: label
input: message
destination: state
output: option message
final_descriptors, final_descriptors': equivocator_descriptors IM
H: length tr' < length (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → length tr' = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]): _composite_state (equivocator_IM IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: transition l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}) = (s, VLSM.output {| l := l0; input := Some input; destination := destination; output := output |})
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (equivocator_Hbs IM Hbs) (finite_trace_last is tr', Some input).1 input
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hiom: option_valid_message_prop XE (VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hinit: composite_initial_state_prop (equivocator_IM IM) is
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := Some input; destination := destination; output := output |}
Hvx: let (i, li) := l0 in vvalid (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')
Hs_free: valid_state_prop FreeE (finite_trace_last is tr')
Hall: trace_has_message (field_selector VLSM.output) input tr'
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
_Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXm
Hfinal_descriptors_m: proper_fixed_equivocator_descriptors final_descriptors_m (finite_trace_last is tr')

length tr' < length (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}])
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
s: _composite_state (equivocator_IM IM)
l0: label
input: message
destination: state
output: option message
final_descriptors, final_descriptors': equivocator_descriptors IM
H: length tr' < length (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → length tr' = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]): _composite_state (equivocator_IM IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: transition l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}) = (s, VLSM.output {| l := l0; input := Some input; destination := destination; output := output |})
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (equivocator_Hbs IM Hbs) (finite_trace_last is tr', Some input).1 input
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hiom: option_valid_message_prop XE (VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hinit: composite_initial_state_prop (equivocator_IM IM) is
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := Some input; destination := destination; output := output |}
Hvx: let (i, li) := l0 in vvalid (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')
Hs_free: valid_state_prop FreeE (finite_trace_last is tr')
Hall: trace_has_message (field_selector VLSM.output) input tr'
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
_Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXm
Hfinal_descriptors_m: proper_fixed_equivocator_descriptors final_descriptors_m (finite_trace_last is tr')

length tr' < length tr' + length [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
s: _composite_state (equivocator_IM IM)
l0: label
input: message
destination: state
output: option message
final_descriptors, final_descriptors': equivocator_descriptors IM
H: length tr' < length (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → length tr' = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]): _composite_state (equivocator_IM IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: transition l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}) = (s, VLSM.output {| l := l0; input := Some input; destination := destination; output := output |})
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (equivocator_Hbs IM Hbs) (finite_trace_last is tr', Some input).1 input
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hiom: option_valid_message_prop XE (VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hinit: composite_initial_state_prop (equivocator_IM IM) is
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := Some input; destination := destination; output := output |}
Hvx: let (i, li) := l0 in vvalid (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')
Hs_free: valid_state_prop FreeE (finite_trace_last is tr')
Hall: trace_has_message (field_selector VLSM.output) input tr'
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
_Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXm
Hfinal_descriptors_m: proper_fixed_equivocator_descriptors final_descriptors_m (finite_trace_last is tr')

length tr' < length tr' + 1
lia.
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
s: _composite_state (equivocator_IM IM)
l0: label
input: message
destination: state
output: option message
final_descriptors, final_descriptors': equivocator_descriptors IM
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]): _composite_state (equivocator_IM IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: transition l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}) = (s, VLSM.output {| l := l0; input := Some input; destination := destination; output := output |})
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (equivocator_Hbs IM Hbs) (finite_trace_last is tr', Some input).1 input
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hiom: option_valid_message_prop XE (VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hinit: composite_initial_state_prop (equivocator_IM IM) is
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := Some input; destination := destination; output := output |}
Hvx: let (i, li) := l0 in vvalid (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')
Hs_free: valid_state_prop FreeE (finite_trace_last is tr')
Hall: trace_has_message (field_selector VLSM.output) input tr'
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
_Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXm
Hfinal_descriptors_m: proper_fixed_equivocator_descriptors final_descriptors_m (finite_trace_last is tr')
H: tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → length tr' = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX

input_valid_transition X' l0 (finite_trace_last (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') [], Some input) (destination, output)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
s: _composite_state (equivocator_IM IM)
l0: label
input: message
destination: state
output: option message
final_descriptors, final_descriptors': equivocator_descriptors IM
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]): _composite_state (equivocator_IM IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: transition l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}) = (s, VLSM.output {| l := l0; input := Some input; destination := destination; output := output |})
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (equivocator_Hbs IM Hbs) (finite_trace_last is tr', Some input).1 input
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hiom: option_valid_message_prop XE (VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hinit: composite_initial_state_prop (equivocator_IM IM) is
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := Some input; destination := destination; output := output |}
Hvx: let (i, li) := l0 in vvalid (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')
Hs_free: valid_state_prop FreeE (finite_trace_last is tr')
Hall: trace_has_message (field_selector VLSM.output) input tr'
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
_Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXm
Hfinal_descriptors_m: proper_fixed_equivocator_descriptors final_descriptors_m (finite_trace_last is tr')
H: (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors_m tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors_m (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX

input_valid_transition X' l0 (finite_trace_last (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') [], Some input) (destination, output)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
s: _composite_state (equivocator_IM IM)
l0: label
input: message
destination: state
output: option message
final_descriptors, final_descriptors': equivocator_descriptors IM
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]): _composite_state (equivocator_IM IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: transition l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}) = (s, VLSM.output {| l := l0; input := Some input; destination := destination; output := output |})
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (equivocator_Hbs IM Hbs) (finite_trace_last is tr', Some input).1 input
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hiom: option_valid_message_prop XE (VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hinit: composite_initial_state_prop (equivocator_IM IM) is
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := Some input; destination := destination; output := output |}
Hvx: let (i, li) := l0 in vvalid (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')
Hs_free: valid_state_prop FreeE (finite_trace_last is tr')
Hall: trace_has_message (field_selector VLSM.output) input tr'
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
_Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXm
Hfinal_descriptors_m: proper_fixed_equivocator_descriptors final_descriptors_m (finite_trace_last is tr')
trXm': list (composite_transition_item IM)
initial_descriptors_m': equivocator_descriptors IM
Hproper_initial_m: proper_fixed_equivocator_descriptors initial_descriptors_m' is
Hproject_trXm': equivocators_trace_project IM final_descriptors_m tr' = Some (trXm', initial_descriptors_m')
Hpr_fin_tr': equivocators_state_project IM final_descriptors_m (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors_m' is) trXm'
HtrXm: finite_valid_trace X' (equivocators_state_project IM initial_descriptors_m' is) trXm'

input_valid_transition X' l0 (finite_trace_last (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') [], Some input) (destination, output)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
s: _composite_state (equivocator_IM IM)
l0: _composite_label IM
input: message
destination: _composite_state IM
output: option message
final_descriptors, final_descriptors': equivocator_descriptors IM
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]): _composite_state (equivocator_IM IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := Some input; destination := s; output := output |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: (let (i, li) := l in let (si', om') := vtransition (equivocator_IM IM i) li (finite_trace_last is tr' i, Some input) in (state_update (equivocator_IM IM) (finite_trace_last is tr') i si', om')) = (s, output)
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (equivocator_Hbs IM Hbs) (finite_trace_last is tr') input
Hv: let (i, li) := l in vvalid (equivocator_IM IM i) li (finite_trace_last is tr' i, Some input)
Hiom: option_valid_message_prop XE (Some input)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: composite_initial_state_prop IM (equivocators_state_project IM initial_descriptors is)
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = destination
Hvx: let (i, li) := l0 in vvalid (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')
Hs_free: valid_state_prop FreeE (finite_trace_last is tr')
Hall: trace_has_message (field_selector VLSM.output) input tr'
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
_Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXm
Hfinal_descriptors_m: proper_fixed_equivocator_descriptors final_descriptors_m (finite_trace_last is tr')
trXm': list (composite_transition_item IM)
initial_descriptors_m': equivocator_descriptors IM
Hproper_initial_m: proper_fixed_equivocator_descriptors initial_descriptors_m' is
Hproject_trXm': equivocators_trace_project IM final_descriptors_m tr' = Some (trXm', initial_descriptors_m')
Hpr_fin_tr': equivocators_state_project IM final_descriptors_m (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors_m' is) trXm'
HtrXm: finite_valid_trace X' (equivocators_state_project IM initial_descriptors_m' is) trXm'

input_valid_transition X' l0 (finite_trace_last (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') [], Some input) (destination, output)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
s: _composite_state (equivocator_IM IM)
l0: _composite_label IM
input: message
destination: _composite_state IM
output: option message
final_descriptors, final_descriptors': equivocator_descriptors IM
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]): _composite_state (equivocator_IM IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := Some input; destination := s; output := output |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: (let (i, li) := l in let (si', om') := vtransition (equivocator_IM IM i) li (finite_trace_last is tr' i, Some input) in (state_update (equivocator_IM IM) (finite_trace_last is tr') i si', om')) = (s, output)
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (equivocator_Hbs IM Hbs) (finite_trace_last is tr') input
Hv: let (i, li) := l in vvalid (equivocator_IM IM i) li (finite_trace_last is tr' i, Some input)
Hiom: option_valid_message_prop XE (Some input)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: composite_initial_state_prop IM (equivocators_state_project IM initial_descriptors is)
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = destination
Hvx: let (i, li) := l0 in vvalid (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')
Hs_free: valid_state_prop FreeE (finite_trace_last is tr')
Hall: trace_has_message (field_selector VLSM.output) input tr'
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
_Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXm
Hfinal_descriptors_m: proper_fixed_equivocator_descriptors final_descriptors_m (finite_trace_last is tr')
trXm': list (composite_transition_item IM)
initial_descriptors_m': equivocator_descriptors IM
Hproper_initial_m: proper_fixed_equivocator_descriptors initial_descriptors_m' is
Hproject_trXm': Some (trXm, initial_descriptors_m) = Some (trXm', initial_descriptors_m')
Hpr_fin_tr': equivocators_state_project IM final_descriptors_m (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors_m' is) trXm'
HtrXm: finite_valid_trace X' (equivocators_state_project IM initial_descriptors_m' is) trXm'

input_valid_transition X' l0 (finite_trace_last (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') [], Some input) (destination, output)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
s: _composite_state (equivocator_IM IM)
l0: _composite_label IM
input: message
destination: _composite_state IM
output: option message
final_descriptors, final_descriptors': equivocator_descriptors IM
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]): _composite_state (equivocator_IM IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := Some input; destination := s; output := output |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: (let (i, li) := l in let (si', om') := vtransition (equivocator_IM IM i) li (finite_trace_last is tr' i, Some input) in (state_update (equivocator_IM IM) (finite_trace_last is tr') i si', om')) = (s, output)
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (equivocator_Hbs IM Hbs) (finite_trace_last is tr') input
Hv: let (i, li) := l in vvalid (equivocator_IM IM i) li (finite_trace_last is tr' i, Some input)
Hiom: option_valid_message_prop XE (Some input)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: composite_initial_state_prop IM (equivocators_state_project IM initial_descriptors is)
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = destination
Hvx: let (i, li) := l0 in vvalid (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')
Hs_free: valid_state_prop FreeE (finite_trace_last is tr')
Hall: trace_has_message (field_selector VLSM.output) input tr'
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
_Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXm
Hfinal_descriptors_m: proper_fixed_equivocator_descriptors final_descriptors_m (finite_trace_last is tr')
trXm': list (composite_transition_item IM)
initial_descriptors_m': equivocator_descriptors IM
Hproper_initial_m: proper_fixed_equivocator_descriptors initial_descriptors_m' is
Hproject_trXm': Some (trXm, initial_descriptors_m) = Some (trXm', initial_descriptors_m')
Hpr_fin_tr': equivocators_state_project IM final_descriptors_m (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors_m' is) trXm'
HtrXm: finite_valid_trace X' (equivocators_state_project IM initial_descriptors_m' is) trXm'
H0: trXm = trXm'
H1: initial_descriptors_m = initial_descriptors_m'

input_valid_transition X' l0 (finite_trace_last (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') [], Some input) (destination, output)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
s: _composite_state (equivocator_IM IM)
l0: _composite_label IM
input: message
destination: _composite_state IM
output: option message
final_descriptors, final_descriptors': equivocator_descriptors IM
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]): _composite_state (equivocator_IM IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := Some input; destination := s; output := output |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: (let (i, li) := l in let (si', om') := vtransition (equivocator_IM IM i) li (finite_trace_last is tr' i, Some input) in (state_update (equivocator_IM IM) (finite_trace_last is tr') i si', om')) = (s, output)
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (equivocator_Hbs IM Hbs) (finite_trace_last is tr') input
Hv: let (i, li) := l in vvalid (equivocator_IM IM i) li (finite_trace_last is tr' i, Some input)
Hiom: option_valid_message_prop XE (Some input)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: composite_initial_state_prop IM (equivocators_state_project IM initial_descriptors is)
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = destination
Hvx: let (i, li) := l0 in vvalid (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')
Hs_free: valid_state_prop FreeE (finite_trace_last is tr')
Hall: trace_has_message (field_selector VLSM.output) input tr'
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
_Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXm
Hfinal_descriptors_m: proper_fixed_equivocator_descriptors final_descriptors_m (finite_trace_last is tr')
Hproject_trXm': Some (trXm, initial_descriptors_m) = Some (trXm, initial_descriptors_m)
Hpr_fin_tr': equivocators_state_project IM final_descriptors_m (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors_m is) trXm
HtrXm: finite_valid_trace X' (equivocators_state_project IM initial_descriptors_m is) trXm
Hproper_initial_m: proper_fixed_equivocator_descriptors initial_descriptors_m is

input_valid_transition X' l0 (finite_trace_last (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') [], Some input) (destination, output)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
s: _composite_state (equivocator_IM IM)
l0: _composite_label IM
input: message
destination: _composite_state IM
output: option message
final_descriptors, final_descriptors': equivocator_descriptors IM
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]): _composite_state (equivocator_IM IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := Some input; destination := s; output := output |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: (let (i, li) := l in let (si', om') := vtransition (equivocator_IM IM i) li (finite_trace_last is tr' i, Some input) in (state_update (equivocator_IM IM) (finite_trace_last is tr') i si', om')) = (s, output)
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (equivocator_Hbs IM Hbs) (finite_trace_last is tr') input
Hv: let (i, li) := l in vvalid (equivocator_IM IM i) li (finite_trace_last is tr' i, Some input)
Hiom: option_valid_message_prop XE (Some input)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: composite_initial_state_prop IM (equivocators_state_project IM initial_descriptors is)
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = destination
Hvx: let (i, li) := l0 in vvalid (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')
Hs_free: valid_state_prop FreeE (finite_trace_last is tr')
Hall: trace_has_message (field_selector VLSM.output) input tr'
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
_Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXm
Hfinal_descriptors_m: proper_fixed_equivocator_descriptors final_descriptors_m (finite_trace_last is tr')
Hpr_fin_tr': equivocators_state_project IM final_descriptors_m (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors_m is) trXm
HtrXm: finite_valid_trace X' (equivocators_state_project IM initial_descriptors_m is) trXm
Hproper_initial_m: proper_fixed_equivocator_descriptors initial_descriptors_m is

input_valid_transition X' l0 (finite_trace_last (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') [], Some input) (destination, output)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
s: _composite_state (equivocator_IM IM)
l0: _composite_label IM
input: message
destination: _composite_state IM
output: option message
final_descriptors, final_descriptors': equivocator_descriptors IM
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]): _composite_state (equivocator_IM IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := Some input; destination := s; output := output |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: (let (i, li) := l in let (si', om') := vtransition (equivocator_IM IM i) li (finite_trace_last is tr' i, Some input) in (state_update (equivocator_IM IM) (finite_trace_last is tr') i si', om')) = (s, output)
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (equivocator_Hbs IM Hbs) (finite_trace_last is tr') input
Hv: let (i, li) := l in vvalid (equivocator_IM IM i) li (finite_trace_last is tr' i, Some input)
Hiom: option_valid_message_prop XE (Some input)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: composite_initial_state_prop IM (equivocators_state_project IM initial_descriptors is)
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = destination
Hvx: let (i, li) := l0 in vvalid (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')
Hs_free: valid_state_prop FreeE (finite_trace_last is tr')
Hall: trace_has_message (field_selector VLSM.output) input tr'
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
_Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXm
Hfinal_descriptors_m: proper_fixed_equivocator_descriptors final_descriptors_m (finite_trace_last is tr')
Hpr_fin_tr': equivocators_state_project IM final_descriptors_m (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors_m is) trXm
HtrXm: finite_valid_trace X' (equivocators_state_project IM initial_descriptors_m is) trXm
Hproper_initial_m: proper_fixed_equivocator_descriptors initial_descriptors_m is

constraint l0 (finite_trace_last (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') [], Some input)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
s: _composite_state (equivocator_IM IM)
l0: _composite_label IM
input: message
destination: _composite_state IM
output: option message
final_descriptors, final_descriptors': equivocator_descriptors IM
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]): _composite_state (equivocator_IM IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := Some input; destination := s; output := output |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: (let (i, li) := l in let (si', om') := vtransition (equivocator_IM IM i) li (finite_trace_last is tr' i, Some input) in (state_update (equivocator_IM IM) (finite_trace_last is tr') i si', om')) = (s, output)
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (equivocator_Hbs IM Hbs) (finite_trace_last is tr') input
Hv: let (i, li) := l in vvalid (equivocator_IM IM i) li (finite_trace_last is tr' i, Some input)
Hiom: option_valid_message_prop XE (Some input)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: composite_initial_state_prop IM (equivocators_state_project IM initial_descriptors is)
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = destination
Hvx: let (i, li) := l0 in vvalid (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')
Hs_free: valid_state_prop FreeE (finite_trace_last is tr')
Hall: trace_has_message (field_selector VLSM.output) input tr'
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
_Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXm
Hfinal_descriptors_m: proper_fixed_equivocator_descriptors final_descriptors_m (finite_trace_last is tr')
Hpr_fin_tr': equivocators_state_project IM final_descriptors_m (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors_m is) trXm
HtrXm: finite_valid_trace X' (equivocators_state_project IM initial_descriptors_m is) trXm
Hproper_initial_m: proper_fixed_equivocator_descriptors initial_descriptors_m is

constraint l0 (finite_trace_last (equivocators_state_project IM final_descriptors' (finite_trace_last is tr')) [], Some input)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
s: _composite_state (equivocator_IM IM)
l0: _composite_label IM
input: message
destination: _composite_state IM
output: option message
final_descriptors, final_descriptors': equivocator_descriptors IM
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]): _composite_state (equivocator_IM IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := Some input; destination := s; output := output |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: (let (i, li) := l in let (si', om') := vtransition (equivocator_IM IM i) li (finite_trace_last is tr' i, Some input) in (state_update (equivocator_IM IM) (finite_trace_last is tr') i si', om')) = (s, output)
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (equivocator_Hbs IM Hbs) (finite_trace_last is tr') input
Hv: let (i, li) := l in vvalid (equivocator_IM IM i) li (finite_trace_last is tr' i, Some input)
Hiom: option_valid_message_prop XE (Some input)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: composite_initial_state_prop IM (equivocators_state_project IM initial_descriptors is)
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = destination
Hvx: let (i, li) := l0 in vvalid (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')
Hs_free: valid_state_prop FreeE (finite_trace_last is tr')
Hall: trace_has_message (field_selector VLSM.output) input tr'
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
_Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXm
Hfinal_descriptors_m: proper_fixed_equivocator_descriptors final_descriptors_m (finite_trace_last is tr')
Hpr_fin_tr': equivocators_state_project IM final_descriptors_m (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors_m is) trXm
HtrXm: finite_valid_trace X' (equivocators_state_project IM initial_descriptors_m is) trXm
Hproper_initial_m: proper_fixed_equivocator_descriptors initial_descriptors_m is

has_been_sent FreeE (finite_trace_last is tr') input
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
s: _composite_state (equivocator_IM IM)
l0: _composite_label IM
input: message
destination: _composite_state IM
output: option message
final_descriptors, final_descriptors': equivocator_descriptors IM
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]): _composite_state (equivocator_IM IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := Some input; destination := s; output := output |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: (let (i, li) := l in let (si', om') := vtransition (equivocator_IM IM i) li (finite_trace_last is tr' i, Some input) in (state_update (equivocator_IM IM) (finite_trace_last is tr') i si', om')) = (s, output)
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (equivocator_Hbs IM Hbs) (finite_trace_last is tr') input
Hv: let (i, li) := l in vvalid (equivocator_IM IM i) li (finite_trace_last is tr' i, Some input)
Hiom: option_valid_message_prop XE (Some input)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: composite_initial_state_prop IM (equivocators_state_project IM initial_descriptors is)
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = destination
Hvx: let (i, li) := l0 in vvalid (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')
Hs_free: valid_state_prop FreeE (finite_trace_last is tr')
Hall: trace_has_message (field_selector VLSM.output) input tr'
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
_Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXm
Hfinal_descriptors_m: proper_fixed_equivocator_descriptors final_descriptors_m (finite_trace_last is tr')
Hpr_fin_tr': equivocators_state_project IM final_descriptors_m (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors_m is) trXm
HtrXm: finite_valid_trace X' (equivocators_state_project IM initial_descriptors_m is) trXm
Hproper_initial_m: proper_fixed_equivocator_descriptors initial_descriptors_m is

valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is tr')
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
s: _composite_state (equivocator_IM IM)
l0: _composite_label IM
input: message
destination: _composite_state IM
output: option message
final_descriptors, final_descriptors': equivocator_descriptors IM
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]): _composite_state (equivocator_IM IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := Some input; destination := s; output := output |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: (let (i, li) := l in let (si', om') := vtransition (equivocator_IM IM i) li (finite_trace_last is tr' i, Some input) in (state_update (equivocator_IM IM) (finite_trace_last is tr') i si', om')) = (s, output)
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (equivocator_Hbs IM Hbs) (finite_trace_last is tr') input
Hv: let (i, li) := l in vvalid (equivocator_IM IM i) li (finite_trace_last is tr' i, Some input)
Hiom: option_valid_message_prop XE (Some input)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: composite_initial_state_prop IM (equivocators_state_project IM initial_descriptors is)
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = destination
Hvx: let (i, li) := l0 in vvalid (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')
Hs_free: valid_state_prop FreeE (finite_trace_last is tr')
Hall: trace_has_message (field_selector VLSM.output) input tr'
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
_Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXm
Hfinal_descriptors_m: proper_fixed_equivocator_descriptors final_descriptors_m (finite_trace_last is tr')
Hpr_fin_tr': equivocators_state_project IM final_descriptors_m (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors_m is) trXm
HtrXm: finite_valid_trace X' (equivocators_state_project IM initial_descriptors_m is) trXm
Hproper_initial_m: proper_fixed_equivocator_descriptors initial_descriptors_m is
Hlst'pre: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is tr')
has_been_sent FreeE (finite_trace_last is tr') input
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
s: _composite_state (equivocator_IM IM)
l0: _composite_label IM
input: message
destination: _composite_state IM
output: option message
final_descriptors, final_descriptors': equivocator_descriptors IM
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]): _composite_state (equivocator_IM IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := Some input; destination := s; output := output |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: (let (i, li) := l in let (si', om') := vtransition (equivocator_IM IM i) li (finite_trace_last is tr' i, Some input) in (state_update (equivocator_IM IM) (finite_trace_last is tr') i si', om')) = (s, output)
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (equivocator_Hbs IM Hbs) (finite_trace_last is tr') input
Hv: let (i, li) := l in vvalid (equivocator_IM IM i) li (finite_trace_last is tr' i, Some input)
Hiom: option_valid_message_prop XE (Some input)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: composite_initial_state_prop IM (equivocators_state_project IM initial_descriptors is)
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = destination
Hvx: let (i, li) := l0 in vvalid (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')
Hs_free: valid_state_prop FreeE (finite_trace_last is tr')
Hall: trace_has_message (field_selector VLSM.output) input tr'
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
_Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXm
Hfinal_descriptors_m: proper_fixed_equivocator_descriptors final_descriptors_m (finite_trace_last is tr')
Hpr_fin_tr': equivocators_state_project IM final_descriptors_m (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors_m is) trXm
HtrXm: finite_valid_trace X' (equivocators_state_project IM initial_descriptors_m is) trXm
Hproper_initial_m: proper_fixed_equivocator_descriptors initial_descriptors_m is

valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is tr')
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
s: _composite_state (equivocator_IM IM)
l0: _composite_label IM
input: message
destination: _composite_state IM
output: option message
final_descriptors, final_descriptors': equivocator_descriptors IM
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]): _composite_state (equivocator_IM IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := Some input; destination := s; output := output |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: (let (i, li) := l in let (si', om') := vtransition (equivocator_IM IM i) li (finite_trace_last is tr' i, Some input) in (state_update (equivocator_IM IM) (finite_trace_last is tr') i si', om')) = (s, output)
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (equivocator_Hbs IM Hbs) (finite_trace_last is tr') input
Hv: let (i, li) := l in vvalid (equivocator_IM IM i) li (finite_trace_last is tr' i, Some input)
Hiom: option_valid_message_prop XE (Some input)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: composite_initial_state_prop IM (equivocators_state_project IM initial_descriptors is)
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = destination
Hvx: let (i, li) := l0 in vvalid (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')
Hs_free: valid_state_prop FreeE (finite_trace_last is tr')
Hall: trace_has_message (field_selector VLSM.output) input tr'
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
_Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXm
Hfinal_descriptors_m: proper_fixed_equivocator_descriptors final_descriptors_m (finite_trace_last is tr')
Hpr_fin_tr': equivocators_state_project IM final_descriptors_m (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors_m is) trXm
HtrXm: finite_valid_trace X' (equivocators_state_project IM initial_descriptors_m is) trXm
Hproper_initial_m: proper_fixed_equivocator_descriptors initial_descriptors_m is

finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is tr'
apply Htr'pre.
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
s: _composite_state (equivocator_IM IM)
l0: _composite_label IM
input: message
destination: _composite_state IM
output: option message
final_descriptors, final_descriptors': equivocator_descriptors IM
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]): _composite_state (equivocator_IM IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := Some input; destination := s; output := output |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: (let (i, li) := l in let (si', om') := vtransition (equivocator_IM IM i) li (finite_trace_last is tr' i, Some input) in (state_update (equivocator_IM IM) (finite_trace_last is tr') i si', om')) = (s, output)
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (equivocator_Hbs IM Hbs) (finite_trace_last is tr') input
Hv: let (i, li) := l in vvalid (equivocator_IM IM i) li (finite_trace_last is tr' i, Some input)
Hiom: option_valid_message_prop XE (Some input)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: composite_initial_state_prop IM (equivocators_state_project IM initial_descriptors is)
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = destination
Hvx: let (i, li) := l0 in vvalid (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')
Hs_free: valid_state_prop FreeE (finite_trace_last is tr')
Hall: trace_has_message (field_selector VLSM.output) input tr'
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
_Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXm
Hfinal_descriptors_m: proper_fixed_equivocator_descriptors final_descriptors_m (finite_trace_last is tr')
Hpr_fin_tr': equivocators_state_project IM final_descriptors_m (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors_m is) trXm
HtrXm: finite_valid_trace X' (equivocators_state_project IM initial_descriptors_m is) trXm
Hproper_initial_m: proper_fixed_equivocator_descriptors initial_descriptors_m is
Hlst'pre: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is tr')

has_been_sent FreeE (finite_trace_last is tr') input
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
s: _composite_state (equivocator_IM IM)
l0: _composite_label IM
input: message
destination: _composite_state IM
output: option message
final_descriptors, final_descriptors': equivocator_descriptors IM
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]): _composite_state (equivocator_IM IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := Some input; destination := s; output := output |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: (let (i, li) := l in let (si', om') := vtransition (equivocator_IM IM i) li (finite_trace_last is tr' i, Some input) in (state_update (equivocator_IM IM) (finite_trace_last is tr') i si', om')) = (s, output)
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (equivocator_Hbs IM Hbs) (finite_trace_last is tr') input
Hv: let (i, li) := l in vvalid (equivocator_IM IM i) li (finite_trace_last is tr' i, Some input)
Hiom: option_valid_message_prop XE (Some input)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: composite_initial_state_prop IM (equivocators_state_project IM initial_descriptors is)
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = destination
Hvx: let (i, li) := l0 in vvalid (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')
Hs_free: valid_state_prop FreeE (finite_trace_last is tr')
Hall: trace_has_message (field_selector VLSM.output) input tr'
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
_Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXm
Hfinal_descriptors_m: proper_fixed_equivocator_descriptors final_descriptors_m (finite_trace_last is tr')
Hpr_fin_tr': equivocators_state_project IM final_descriptors_m (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors_m is) trXm
HtrXm: finite_valid_trace X' (equivocators_state_project IM initial_descriptors_m is) trXm
Hproper_initial_m: proper_fixed_equivocator_descriptors initial_descriptors_m is
Hlst'pre: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is tr')

selected_message_exists_in_all_preloaded_traces FreeE (field_selector VLSM.output) (finite_trace_last is tr') input
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
s: _composite_state (equivocator_IM IM)
l0: _composite_label IM
input: message
destination: _composite_state IM
output: option message
final_descriptors, final_descriptors': equivocator_descriptors IM
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]): _composite_state (equivocator_IM IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := Some input; destination := s; output := output |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: (let (i, li) := l in let (si', om') := vtransition (equivocator_IM IM i) li (finite_trace_last is tr' i, Some input) in (state_update (equivocator_IM IM) (finite_trace_last is tr') i si', om')) = (s, output)
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (equivocator_Hbs IM Hbs) (finite_trace_last is tr') input
Hv: let (i, li) := l in vvalid (equivocator_IM IM i) li (finite_trace_last is tr' i, Some input)
Hiom: option_valid_message_prop XE (Some input)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: composite_initial_state_prop IM (equivocators_state_project IM initial_descriptors is)
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = destination
Hvx: let (i, li) := l0 in vvalid (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')
Hs_free: valid_state_prop FreeE (finite_trace_last is tr')
Hall: trace_has_message (field_selector VLSM.output) input tr'
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
_Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXm
Hfinal_descriptors_m: proper_fixed_equivocator_descriptors final_descriptors_m (finite_trace_last is tr')
Hpr_fin_tr': equivocators_state_project IM final_descriptors_m (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors_m is) trXm
HtrXm: finite_valid_trace X' (equivocators_state_project IM initial_descriptors_m is) trXm
Hproper_initial_m: proper_fixed_equivocator_descriptors initial_descriptors_m is
Hlst'pre: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is tr')

selected_message_exists_in_some_preloaded_traces FreeE (field_selector VLSM.output) (finite_trace_last is tr') input
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
s: _composite_state (equivocator_IM IM)
l0: _composite_label IM
input: message
destination: _composite_state IM
output: option message
final_descriptors, final_descriptors': equivocator_descriptors IM
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]): _composite_state (equivocator_IM IM)
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := Some input; destination := s; output := output |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: (let (i, li) := l in let (si', om') := vtransition (equivocator_IM IM i) li (finite_trace_last is tr' i, Some input) in (state_update (equivocator_IM IM) (finite_trace_last is tr') i si', om')) = (s, output)
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (equivocator_Hbs IM Hbs) (finite_trace_last is tr') input
Hv: let (i, li) := l in vvalid (equivocator_IM IM i) li (finite_trace_last is tr' i, Some input)
Hiom: option_valid_message_prop XE (Some input)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: composite_initial_state_prop IM (equivocators_state_project IM initial_descriptors is)
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = destination
Hvx: let (i, li) := l0 in vvalid (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := vtransition (IM i) li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')
Hs_free: valid_state_prop FreeE (finite_trace_last is tr')
Hall: trace_has_message (field_selector VLSM.output) input tr'
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
_Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXm
Hfinal_descriptors_m: proper_fixed_equivocator_descriptors final_descriptors_m (finite_trace_last is tr')
Hpr_fin_tr': equivocators_state_project IM final_descriptors_m (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors_m is) trXm
HtrXm: finite_valid_trace X' (equivocators_state_project IM initial_descriptors_m is) trXm
Hproper_initial_m: proper_fixed_equivocator_descriptors initial_descriptors_m is
Hlst'pre: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is tr')

trace_has_message (field_selector VLSM.output) input tr'
assumption.
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
H: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is tr: _composite_state (equivocator_IM IM)
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
final_descriptors': equivocator_descriptors IM
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (None, final_descriptors')
Hitemx: True
Hx: equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr')
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = Some ([], final_descriptors')
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ foldr (equivocators_trace_project_folder IM) foldx tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
H: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is tr: _composite_state (equivocator_IM IM)
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
final_descriptors': equivocator_descriptors IM
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (None, final_descriptors')
Hitemx: True
Hx: equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr')
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = Some ([], final_descriptors')
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is

initial_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors initial_descriptors is ∧ foldr (equivocators_trace_project_folder IM) foldx tr' = Some (trX', initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
H: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is tr: _composite_state (equivocator_IM IM)
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
final_descriptors': equivocator_descriptors IM
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (None, final_descriptors')
Hitemx: True
Hx: equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr')
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = Some ([], final_descriptors')
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is

proper_fixed_equivocator_descriptors initial_descriptors is ∧ foldr (equivocators_trace_project_folder IM) foldx tr' = Some (trX', initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
H: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is tr: _composite_state (equivocator_IM IM)
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
final_descriptors': equivocator_descriptors IM
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (None, final_descriptors')
Hitemx: True
Hx: equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr')
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is

proper_fixed_equivocator_descriptors initial_descriptors is ∧ foldr (equivocators_trace_project_folder IM) (Some ([], final_descriptors')) tr' = Some (trX', initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
H: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is tr: _composite_state (equivocator_IM IM)
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
final_descriptors': equivocator_descriptors IM
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (None, final_descriptors')
Hitemx: True
Hx: equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr')
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is

foldr (equivocators_trace_project_folder IM) (Some ([], final_descriptors')) tr' = Some (trX', initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
H: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is tr: _composite_state (equivocator_IM IM)
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
final_descriptors': equivocator_descriptors IM
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (None, final_descriptors')
Hitemx: True
Hx: equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr')
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is

equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
H: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is tr: _composite_state (equivocator_IM IM)
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
final_descriptors': equivocator_descriptors IM
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (None, final_descriptors')
Hitemx: True
Hx: equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr')
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is

equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
H: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]): _composite_state (equivocator_IM IM)
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
final_descriptors': equivocator_descriptors IM
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (None, final_descriptors')
Hitemx: True
Hx: equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr')
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is

equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
is: composite_state (equivocator_IM IM)
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]): _composite_state (equivocator_IM IM)
final_descriptors, final_descriptors': equivocator_descriptors IM
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
Hx: equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr')

equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
is: composite_state (equivocator_IM IM)
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]): _composite_state (equivocator_IM IM)
final_descriptors, final_descriptors': equivocator_descriptors IM
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
Hx: equivocators_state_project IM final_descriptors s = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'

equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
is: composite_state (equivocator_IM IM)
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]): _composite_state (equivocator_IM IM)
final_descriptors, final_descriptors': equivocator_descriptors IM
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
Hx: equivocators_state_project IM final_descriptors s = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'

equivocators_state_project IM final_descriptors final_state = equivocators_state_project IM final_descriptors s
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
is: composite_state (equivocator_IM IM)
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]): _composite_state (equivocator_IM IM)
final_descriptors, final_descriptors': equivocator_descriptors IM
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
Hx: equivocators_state_project IM final_descriptors s = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'

final_state = s
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
is: composite_state (equivocator_IM IM)
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]): _composite_state (equivocator_IM IM)
final_descriptors, final_descriptors': equivocator_descriptors IM
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
Hx: equivocators_state_project IM final_descriptors s = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'

finite_trace_last is (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) = s
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
is: composite_state (equivocator_IM IM)
tr': list (composite_transition_item (equivocator_IM IM))
l: _composite_label (equivocator_IM IM)
iom: option message
s: _composite_state (equivocator_IM IM)
oom: option message
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]): _composite_state (equivocator_IM IM)
final_descriptors, final_descriptors': equivocator_descriptors IM
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
Hx: equivocators_state_project IM final_descriptors s = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'

destination {| l := l; input := iom; destination := s; output := oom |} = s
reflexivity. Qed.
Instantiating the lemma above with the free constraint.
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
final_descriptors: equivocator_descriptors IM
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
final_state:= finite_trace_last is tr: state
Hproper: proper_fixed_equivocator_descriptors final_descriptors final_state
Htr: finite_valid_trace XE is tr

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace (free_composite_vlsm IM) isX trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
final_descriptors: equivocator_descriptors IM
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
final_state:= finite_trace_last is tr: state
Hproper: proper_fixed_equivocator_descriptors final_descriptors final_state
Htr: finite_valid_trace XE is tr

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace (free_composite_vlsm IM) isX trX
apply _equivocators_valid_trace_project; [assumption | assumption| ..] ; unfold constraint_has_been_sent_prop; intros; exact I. Qed.
A message sent by a non-state-equivocating machine can be observed in any projection of the final state.
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
lst:= finite_trace_last is tr: state
item: transition_item
Hitem: item ∈ tr
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors lst

has_been_observed Free (equivocators_state_project IM descriptors lst) m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
lst:= finite_trace_last is tr: state
item: transition_item
Hitem: item ∈ tr
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors lst

has_been_observed Free (equivocators_state_project IM descriptors lst) m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
lst:= finite_trace_last is tr: state
item: transition_item
Hitem: item ∈ tr
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors lst
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX

has_been_observed Free (equivocators_state_project IM descriptors lst) m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
item: transition_item
Hitem: item ∈ tr
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX

has_been_observed Free (equivocators_state_project IM descriptors (finite_trace_last is tr)) m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
item: transition_item
Hitem: item ∈ tr
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX

has_been_observed Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX) m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
item: transition_item
Hitem: item ∈ tr
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX

finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
item: transition_item
Hitem: item ∈ tr
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr
has_been_observed Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX) m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
item: transition_item
Hitem: item ∈ tr
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX

finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
tr: list (composite_transition_item (equivocator_IM IM))
item: transition_item
Hitem: item ∈ tr
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX

finite_valid_trace XE is tr → finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
tr: list (composite_transition_item (equivocator_IM IM))
item: transition_item
Hitem: item ∈ tr
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX

VLSM_incl_part (composite_vlsm_machine (equivocator_IM IM) (equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating)) (pre_loaded_with_all_messages_vlsm_machine FreeE)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
tr: list (composite_transition_item (equivocator_IM IM))
item: transition_item
Hitem: item ∈ tr
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX

VLSM_incl (mk_vlsm {| transition := composite_transition (equivocator_IM IM); valid := constrained_composite_valid (equivocator_IM IM) (equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating) |}) (mk_vlsm (machine FreeE))
apply equivocators_fixed_equivocations_vlsm_incl_free.
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
item: transition_item
Hitem: item ∈ tr
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr

has_been_observed Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX) m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
item: transition_item
Hitem: item ∈ tr
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr

finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
item: transition_item
Hitem: item ∈ tr
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) trX
has_been_observed Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX) m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
item: transition_item
Hitem: item ∈ tr
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr

finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
item: transition_item
Hitem: item ∈ tr
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr

finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX → finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
item: transition_item
Hitem: item ∈ tr
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr

VLSM_incl_part (composite_vlsm_machine IM (free_constraint IM)) (pre_loaded_with_all_messages_vlsm_machine Free)
apply vlsm_incl_pre_loaded_with_all_messages_vlsm.
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
item: transition_item
Hitem: item ∈ tr
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) trX

has_been_observed Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX) m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
item: transition_item
Hitem: item ∈ tr
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) trX

valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
item: transition_item
Hitem: item ∈ tr
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) trX
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)
has_been_observed Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX) m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
item: transition_item
Hitem: item ∈ tr
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) trX

valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
item: transition_item
Hitem: item ∈ tr
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) trX

finite_valid_trace_from (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) trX
apply HtrX_Pre.
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
item: transition_item
Hitem: item ∈ tr
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) trX
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)

has_been_observed Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX) m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
item: transition_item
Hitem: item ∈ tr
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) trX
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)

has_been_received Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX) m ∨ has_been_sent Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX) m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
item: transition_item
Hitem: item ∈ tr
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) trX
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)

has_been_sent Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX) m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
item: transition_item
Hitem: item ∈ tr
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) trX
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)

selected_message_exists_in_all_preloaded_traces Free (field_selector output) (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX) m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
item: transition_item
Hitem: item ∈ tr
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) trX
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)

selected_message_exists_in_some_preloaded_traces Free (field_selector output) (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX) m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
item: transition_item
Hitem: item ∈ tr
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) trX
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)

trace_has_message (field_selector output) m trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
item: transition_item
Hitem: l1 l2 : list transition_item, tr = l1 ++ item :: l2
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) trX
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)

trace_has_message (field_selector output) m trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
item: transition_item
pre, suf: list transition_item
Hitem: tr = pre ++ item :: suf
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) trX
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)

trace_has_message (field_selector output) m trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
item: transition_item
pre, suf: list transition_item
Hitem: tr = pre ++ [item] ++ suf
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) trX
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)

trace_has_message (field_selector output) m trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
item: transition_item
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [item] ++ suf))
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [item] ++ suf) = Some (trX, initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [item] ++ suf)
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) trX
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)

trace_has_message (field_selector output) m trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
item: transition_item
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [item] ++ suf))
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [item] ++ suf) = Some (trX, initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [item] ++ suf)
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) trX
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)

is_singleton_state (IM (projT1 (l item))) (destination item (projT1 (l item)))
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
item: transition_item
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [item] ++ suf))
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [item] ++ suf) = Some (trX, initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [item] ++ suf)
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) trX
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)
Hsingleton_d_item: is_singleton_state (IM (projT1 (l item))) (destination item (projT1 (l item)))
trace_has_message (field_selector output) m trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
item: transition_item
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [item] ++ suf))
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [item] ++ suf) = Some (trX, initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [item] ++ suf)
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) trX
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)

is_singleton_state (IM (projT1 (l item))) (destination item (projT1 (l item)))
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
item: transition_item
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [item] ++ suf))
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [item] ++ suf) = Some (trX, initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [item] ++ suf)
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) trX
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)

valid_state_prop (equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating) (destination item)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
item: transition_item
pre, suf: list transition_item
Htr: finite_valid_trace_from XE is (pre ++ [item] ++ suf)
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [item] ++ suf))
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [item] ++ suf) = Some (trX, initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [item] ++ suf)
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) trX
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)

valid_state_prop (equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating) (destination item)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
item: transition_item
pre, suf: list transition_item
Htr: finite_valid_trace_from XE is ((pre ++ [item]) ++ suf)
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [item] ++ suf))
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [item] ++ suf) = Some (trX, initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [item] ++ suf)
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) trX
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)

valid_state_prop (equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating) (destination item)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
item: transition_item
pre, suf: list transition_item
Htr: finite_valid_trace_from XE is (pre ++ [item]) ∧ finite_valid_trace_from XE (finite_trace_last is (pre ++ [item])) suf
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [item] ++ suf))
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [item] ++ suf) = Some (trX, initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [item] ++ suf)
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) trX
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)

valid_state_prop (equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating) (destination item)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
item: transition_item
pre, suf: list transition_item
Htr: finite_valid_trace_from XE is (pre ++ [item])
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [item] ++ suf))
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [item] ++ suf) = Some (trX, initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [item] ++ suf)
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) trX
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)

valid_state_prop (equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating) (destination item)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
item: transition_item
pre, suf: list transition_item
Htr: valid_state_prop XE (finite_trace_last is (pre ++ [item]))
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [item] ++ suf))
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [item] ++ suf) = Some (trX, initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [item] ++ suf)
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) trX
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)

valid_state_prop (equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating) (destination item)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
item: transition_item
pre, suf: list transition_item
Htr: valid_state_prop XE (destination item)
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [item] ++ suf))
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [item] ++ suf) = Some (trX, initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [item] ++ suf)
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) trX
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)

valid_state_prop (equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating) (destination item)
assumption.
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
item: transition_item
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [item] ++ suf))
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [item] ++ suf) = Some (trX, initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [item] ++ suf)
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) trX
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)
Hsingleton_d_item: is_singleton_state (IM (projT1 (l item))) (destination item (projT1 (l item)))

trace_has_message (field_selector output) m trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
item: transition_item
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [item] ++ suf))
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors IM), equivocators_trace_project IM descriptors ([item] ++ suf) = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project IM eqv_descriptors' pre = Some (preX, initial_descriptors) ∧ trX = preX ++ sufX
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [item] ++ suf)
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) trX
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)
Hsingleton_d_item: is_singleton_state (IM (projT1 (l item))) (destination item (projT1 (l item)))

trace_has_message (field_selector output) m trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
item: transition_item
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [item] ++ suf))
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
preX', sufX': list (composite_transition_item IM)
eqv_descriptors': equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM descriptors ([item] ++ suf) = Some (sufX', eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HpreX: trX = preX' ++ sufX'
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [item] ++ suf)
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) trX
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)
Hsingleton_d_item: is_singleton_state (IM (projT1 (l item))) (destination item (projT1 (l item)))

trace_has_message (field_selector output) m trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
item: transition_item
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [item] ++ suf))
initial_descriptors: equivocator_descriptors IM
preX', sufX': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ sufX')
eqv_descriptors': equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM descriptors ([item] ++ suf) = Some (sufX', eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ sufX')
Htr_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [item] ++ suf)
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ sufX'))
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ sufX')
Hsingleton_d_item: is_singleton_state (IM (projT1 (l item))) (destination item (projT1 (l item)))

trace_has_message (field_selector output) m (preX' ++ sufX')
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
item: transition_item
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [item] ++ suf))
initial_descriptors: equivocator_descriptors IM
preX', sufX': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ sufX')
eqv_descriptors': equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM descriptors ([item] ++ suf) = Some (sufX', eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ sufX')
Htr_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [item] ++ suf)
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ sufX'))
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ sufX')
Hsingleton_d_item: is_singleton_state (IM (projT1 (l item))) (destination item (projT1 (l item)))

Exists (field_selector output m) preX' ∨ Exists (field_selector output m) sufX'
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
item: transition_item
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [item] ++ suf))
initial_descriptors: equivocator_descriptors IM
preX', sufX': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ sufX')
eqv_descriptors': equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM descriptors ([item] ++ suf) = Some (sufX', eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ sufX')
Htr_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [item] ++ suf)
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ sufX'))
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ sufX')
Hsingleton_d_item: is_singleton_state (IM (projT1 (l item))) (destination item (projT1 (l item)))

Exists (field_selector output m) sufX'
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
item: transition_item
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [item] ++ suf))
initial_descriptors: equivocator_descriptors IM
preX', sufX': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ sufX')
eqv_descriptors': equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM descriptors ([item] ++ suf) = Some (sufX', eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ sufX')
Htr_Pre: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [item] ++ suf)
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ sufX'))
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ sufX')
Hsingleton_d_item: is_singleton_state (IM (projT1 (l item))) (destination item (projT1 (l item)))

Exists (field_selector output m) sufX'
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
item: transition_item
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [item] ++ suf))
initial_descriptors: equivocator_descriptors IM
preX', sufX': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ sufX')
eqv_descriptors': equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM descriptors ([item] ++ suf) = Some (sufX', eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ sufX')
Htr_Pre: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is pre ∧ finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([item] ++ suf)
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ sufX'))
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ sufX')
Hsingleton_d_item: is_singleton_state (IM (projT1 (l item))) (destination item (projT1 (l item)))

Exists (field_selector output m) sufX'
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
item: transition_item
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [item] ++ suf))
initial_descriptors: equivocator_descriptors IM
preX', sufX': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ sufX')
eqv_descriptors': equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM descriptors ([item] ++ suf) = Some (sufX', eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ sufX')
Hpre'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is pre
Hsuf'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([item] ++ suf)
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ sufX'))
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ sufX')
Hsingleton_d_item: is_singleton_state (IM (projT1 (l item))) (destination item (projT1 (l item)))

Exists (field_selector output m) sufX'
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
item: transition_item
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [item] ++ suf))
initial_descriptors: equivocator_descriptors IM
preX', sufX': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ sufX')
eqv_descriptors': equivocator_descriptors IM
Hpr_suf: (preX sufX : list (composite_transition_item IM)) (eqv_descriptors'0 : equivocator_descriptors IM), equivocators_trace_project IM descriptors suf = Some (sufX, eqv_descriptors'0) ∧ equivocators_trace_project IM eqv_descriptors'0 [item] = Some (preX, eqv_descriptors') ∧ sufX' = preX ++ sufX
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ sufX')
Hpre'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is pre
Hsuf'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([item] ++ suf)
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ sufX'))
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ sufX')
Hsingleton_d_item: is_singleton_state (IM (projT1 (l item))) (destination item (projT1 (l item)))

Exists (field_selector output m) sufX'
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
item: transition_item
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [item] ++ suf))
initial_descriptors: equivocator_descriptors IM
preX', sufX': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ sufX')
eqv_descriptors': equivocator_descriptors IM
pre_itemX, sufX'': list (composite_transition_item IM)
eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
Hpr_pre_item: equivocators_trace_project IM eqv_descriptors'' [item] = Some (pre_itemX, eqv_descriptors')
HsufX': sufX' = pre_itemX ++ sufX''
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ sufX')
Hpre'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is pre
Hsuf'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([item] ++ suf)
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ sufX'))
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ sufX')
Hsingleton_d_item: is_singleton_state (IM (projT1 (l item))) (destination item (projT1 (l item)))

Exists (field_selector output m) sufX'
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
item: transition_item
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [item] ++ suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
Hpr_pre_item: equivocators_trace_project IM eqv_descriptors'' [item] = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is pre
Hsuf'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([item] ++ suf)
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM (projT1 (l item))) (destination item (projT1 (l item)))

Exists (field_selector output m) (pre_itemX ++ sufX'')
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
item: transition_item
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [item] ++ suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
Hpr_pre_item: equivocators_trace_project IM eqv_descriptors'' [item] = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is pre
Hsuf'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([item] ++ suf)
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM (projT1 (l item))) (destination item (projT1 (l item)))

Exists (field_selector output m) pre_itemX ∨ Exists (field_selector output m) sufX''
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
item: transition_item
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [item] ++ suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
Hpr_pre_item: equivocators_trace_project IM eqv_descriptors'' [item] = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is pre
Hsuf'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([item] ++ suf)
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM (projT1 (l item))) (destination item (projT1 (l item)))

Exists (field_selector output m) pre_itemX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
item: transition_item
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [item] ++ suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
Hpr_pre_item: equivocators_trace_project IM eqv_descriptors'' [item] = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is pre
Hsuf'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) [item] ∧ finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last (finite_trace_last is pre) [item]) suf
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM (projT1 (l item))) (destination item (projT1 (l item)))

Exists (field_selector output m) pre_itemX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
item: transition_item
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [item] ++ suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
Hpr_pre_item: equivocators_trace_project IM eqv_descriptors'' [item] = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is pre
Hpre_item_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) [item]
Hsuf'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last (finite_trace_last is pre) [item]) suf
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM (projT1 (l item))) (destination item (projT1 (l item)))

Exists (field_selector output m) pre_itemX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
item: transition_item
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [item] ++ suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
Hpr_pre_item: equivocators_trace_project IM eqv_descriptors'' [item] = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is pre
Hpre_item_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) [item]
Hsuf'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last (finite_trace_last is pre) [item]) suf
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM (projT1 (l item))) (destination item (projT1 (l item)))

i : index, i ∉ equivocating → eqv_descriptors'' i = Existing 0
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
item: transition_item
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [item] ++ suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
Hpr_pre_item: equivocators_trace_project IM eqv_descriptors'' [item] = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is pre
Hpre_item_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) [item]
Hsuf'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last (finite_trace_last is pre) [item]) suf
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM (projT1 (l item))) (destination item (projT1 (l item)))
Heqv_descriptors'': i : index, i ∉ equivocating → eqv_descriptors'' i = Existing 0
Exists (field_selector output m) pre_itemX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
item: transition_item
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [item] ++ suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
Hpr_pre_item: equivocators_trace_project IM eqv_descriptors'' [item] = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is pre
Hpre_item_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) [item]
Hsuf'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last (finite_trace_last is pre) [item]) suf
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM (projT1 (l item))) (destination item (projT1 (l item)))

i : index, i ∉ equivocating → eqv_descriptors'' i = Existing 0
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
item: transition_item
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [item] ++ suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
Hpr_pre_item: equivocators_trace_project IM eqv_descriptors'' [item] = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is pre
Hpre_item_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) [item]
Hsuf'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last (finite_trace_last is pre) [item]) suf
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM (projT1 (l item))) (destination item (projT1 (l item)))
Hpr: (idescriptors : equivocator_descriptors IM) (trX : list (composite_transition_item IM)), equivocators_trace_project IM descriptors suf = Some (trX, idescriptors) → i : index, descriptors i = Existing 0 → idescriptors i = Existing 0

i : index, i ∉ equivocating → eqv_descriptors'' i = Existing 0
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
item: transition_item
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [item] ++ suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
Hpr_pre_item: equivocators_trace_project IM eqv_descriptors'' [item] = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is pre
Hpre_item_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) [item]
Hsuf'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last (finite_trace_last is pre) [item]) suf
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM (projT1 (l item))) (destination item (projT1 (l item)))
Hpr: i : index, descriptors i = Existing 0 → eqv_descriptors'' i = Existing 0

i : index, i ∉ equivocating → eqv_descriptors'' i = Existing 0
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
item: transition_item
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [item] ++ suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
Hpr_pre_item: equivocators_trace_project IM eqv_descriptors'' [item] = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is pre
Hpre_item_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) [item]
Hsuf'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last (finite_trace_last is pre) [item]) suf
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM (projT1 (l item))) (destination item (projT1 (l item)))
Hpr: i : index, descriptors i = Existing 0 → eqv_descriptors'' i = Existing 0
i: index
Hi: i ∉ equivocating

eqv_descriptors'' i = Existing 0
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
item: transition_item
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [item] ++ suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
Hpr_pre_item: equivocators_trace_project IM eqv_descriptors'' [item] = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is pre
Hpre_item_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) [item]
Hsuf'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last (finite_trace_last is pre) [item]) suf
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM (projT1 (l item))) (destination item (projT1 (l item)))
Hpr: i : index, descriptors i = Existing 0 → eqv_descriptors'' i = Existing 0
i: index
Hi: i ∉ equivocating

descriptors i = Existing 0
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
item: transition_item
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [item] ++ suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
Hpr_pre_item: equivocators_trace_project IM eqv_descriptors'' [item] = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is pre
Hpre_item_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) [item]
Hsuf'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last (finite_trace_last is pre) [item]) suf
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM (projT1 (l item))) (destination item (projT1 (l item)))
Hpr: i : index, descriptors i = Existing 0 → eqv_descriptors'' i = Existing 0
i: index
Hi: i ∉ equivocating

i ∉ equivocating
assumption.
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
item: transition_item
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [item] ++ suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
Hpr_pre_item: equivocators_trace_project IM eqv_descriptors'' [item] = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is pre
Hpre_item_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) [item]
Hsuf'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last (finite_trace_last is pre) [item]) suf
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM (projT1 (l item))) (destination item (projT1 (l item)))
Heqv_descriptors'': i : index, i ∉ equivocating → eqv_descriptors'' i = Existing 0

Exists (field_selector output m) pre_itemX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
item: transition_item
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [item] ++ suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
Hpr_pre_item: equivocators_trace_project IM eqv_descriptors'' [item] = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is pre
Hpre_item_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) [item]
Hsuf'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last (finite_trace_last is pre) [item]) suf
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM (projT1 (l item))) (destination item (projT1 (l item)))
Heqv_descriptors'': eqv_descriptors'' (projT1 (l item)) = Existing 0

Exists (field_selector output m) pre_itemX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
item: transition_item
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ item :: suf)
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: output item = Some m
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ item :: suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ item :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
Hpr_pre_item: match equivocators_transition_item_project IM eqv_descriptors'' item with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is pre
Hpre_item_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) [item]
Hsuf'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last (finite_trace_last is pre) [item]) suf
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM (projT1 (l item))) (destination item (projT1 (l item)))
Heqv_descriptors'': eqv_descriptors'' (projT1 (l item)) = Existing 0

Exists (field_selector output m) pre_itemX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
item: transition_item
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ item :: suf)
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: output item = Some m
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ item :: suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ item :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
o: option (composite_transition_item IM)
odescriptor: equivocator_descriptors IM
Hpr: equivocators_transition_item_project IM eqv_descriptors'' item = Some (o, odescriptor)
Hpr_pre_item: match o with | Some item' => Some ([item'], odescriptor) | None => Some ([], odescriptor) end = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is pre
Hpre_item_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) [item]
Hsuf'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last (finite_trace_last is pre) [item]) suf
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM (projT1 (l item))) (destination item (projT1 (l item)))
Heqv_descriptors'': eqv_descriptors'' (projT1 (l item)) = Existing 0

Exists (field_selector output m) pre_itemX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
l: label
input: option message
destination: state
output: option message
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ {| l := l; input := input; destination := destination; output := output |} :: suf)
Hitem_not_equiv: projT1 (VLSM.l {| l := l; input := input; destination := destination; output := output |}) ∉ equivocating
m: message
Hm: VLSM.output {| l := l; input := input; destination := destination; output := output |} = Some m
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ {| l := l; input := input; destination := destination; output := output |} :: suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := l; input := input; destination := destination; output := output |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
o: option (composite_transition_item IM)
odescriptor: equivocator_descriptors IM
Hpr: equivocators_transition_item_project IM eqv_descriptors'' {| l := l; input := input; destination := destination; output := output |} = Some (o, odescriptor)
Hpr_pre_item: match o with | Some item' => Some ([item'], odescriptor) | None => Some ([], odescriptor) end = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is pre
Hpre_item_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) [{| l := l; input := input; destination := destination; output := output |}]
Hsuf'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last (finite_trace_last is pre) [{| l := l; input := input; destination := destination; output := output |}]) suf
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM (projT1 (VLSM.l {| l := l; input := input; destination := destination; output := output |}))) (VLSM.destination {| l := l; input := input; destination := destination; output := output |} (projT1 (VLSM.l {| l := l; input := input; destination := destination; output := output |})))
Heqv_descriptors'': eqv_descriptors'' (projT1 (VLSM.l {| l := l; input := input; destination := destination; output := output |})) = Existing 0

Exists (field_selector VLSM.output m) pre_itemX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
l: _composite_label (equivocator_IM IM)
input: option message
destination: _composite_state (equivocator_IM IM)
output: option message
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ {| l := l; input := input; destination := destination; output := output |} :: suf)
Hitem_not_equiv: projT1 l ∉ equivocating
m: message
Hm: output = Some m
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ {| l := l; input := input; destination := destination; output := output |} :: suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := l; input := input; destination := destination; output := output |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
o: option (composite_transition_item IM)
odescriptor: equivocator_descriptors IM
Hpr: equivocators_transition_item_project IM eqv_descriptors'' {| l := l; input := input; destination := destination; output := output |} = Some (o, odescriptor)
Hpr_pre_item: match o with | Some item' => Some ([item'], odescriptor) | None => Some ([], odescriptor) end = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is pre
Hpre_item_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) [{| l := l; input := input; destination := destination; output := output |}]
Hsuf'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last (finite_trace_last is pre) [{| l := l; input := input; destination := destination; output := output |}]) suf
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM (projT1 l)) (destination (projT1 l))
Heqv_descriptors'': eqv_descriptors'' (projT1 l) = Existing 0

Exists (field_selector VLSM.output m) pre_itemX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
l: _composite_label (equivocator_IM IM)
input: option message
destination: _composite_state (equivocator_IM IM)
output: option message
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ {| l := l; input := input; destination := destination; output := output |} :: suf)
Hitem_not_equiv: projT1 l ∉ equivocating
m: message
Hm: output = Some m
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ {| l := l; input := input; destination := destination; output := output |} :: suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := l; input := input; destination := destination; output := output |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
o: option (composite_transition_item IM)
odescriptor: equivocator_descriptors IM
Hpr: equivocators_transition_item_project IM eqv_descriptors'' {| l := l; input := input; destination := destination; output := output |} = Some (o, odescriptor)
Hpr_pre_item: match o with | Some item' => Some ([item'], odescriptor) | None => Some ([], odescriptor) end = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is pre
Hpre_item_free: input_valid_transition (pre_loaded_with_all_messages_vlsm FreeE) (VLSM.l {| l := l; input := input; destination := destination; output := output |}) (finite_trace_last is pre, VLSM.input {| l := l; input := input; destination := destination; output := output |}) (VLSM.destination {| l := l; input := input; destination := destination; output := output |}, VLSM.output {| l := l; input := input; destination := destination; output := output |})
Hsuf'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last (finite_trace_last is pre) [{| l := l; input := input; destination := destination; output := output |}]) suf
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM (projT1 l)) (destination (projT1 l))
Heqv_descriptors'': eqv_descriptors'' (projT1 l) = Existing 0

Exists (field_selector VLSM.output m) pre_itemX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
l: _composite_label (equivocator_IM IM)
input: option message
destination: _composite_state (equivocator_IM IM)
output: option message
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ {| l := l; input := input; destination := destination; output := output |} :: suf)
Hitem_not_equiv: projT1 l ∉ equivocating
m: message
Hm: output = Some m
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ {| l := l; input := input; destination := destination; output := output |} :: suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := l; input := input; destination := destination; output := output |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
o: option (composite_transition_item IM)
odescriptor: equivocator_descriptors IM
Hpr: equivocators_transition_item_project IM eqv_descriptors'' {| l := l; input := input; destination := destination; output := output |} = Some (o, odescriptor)
Hpr_pre_item: match o with | Some item' => Some ([item'], odescriptor) | None => Some ([], odescriptor) end = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is pre
Hpre_item_free: input_valid_transition (pre_loaded_with_all_messages_vlsm FreeE) l (finite_trace_last is pre, input) (destination, output)
Hsuf'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last (finite_trace_last is pre) [{| l := l; input := input; destination := destination; output := output |}]) suf
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM (projT1 l)) (destination (projT1 l))
Heqv_descriptors'': eqv_descriptors'' (projT1 l) = Existing 0

Exists (field_selector VLSM.output m) pre_itemX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
l: _composite_label (equivocator_IM IM)
input: option message
destination: _composite_state (equivocator_IM IM)
output: option message
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ {| l := l; input := input; destination := destination; output := output |} :: suf)
Hitem_not_equiv: projT1 l ∉ equivocating
m: message
Hm: output = Some m
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ {| l := l; input := input; destination := destination; output := output |} :: suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := l; input := input; destination := destination; output := output |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
o: option (composite_transition_item IM)
odescriptor: equivocator_descriptors IM
Hpr: equivocators_transition_item_project IM eqv_descriptors'' {| l := l; input := input; destination := destination; output := output |} = Some (o, odescriptor)
Hpr_pre_item: match o with | Some item' => Some ([item'], odescriptor) | None => Some ([], odescriptor) end = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is pre
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is pre, input)
Ht: transition l (finite_trace_last is pre, input) = (destination, output)
Hsuf'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last (finite_trace_last is pre) [{| l := l; input := input; destination := destination; output := output |}]) suf
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM (projT1 l)) (destination (projT1 l))
Heqv_descriptors'': eqv_descriptors'' (projT1 l) = Existing 0

Exists (field_selector VLSM.output m) pre_itemX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
x: index
v: vlabel (equivocator_IM IM x)
input: option message
destination: _composite_state (equivocator_IM IM)
output: option message
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ {| l := existT x v; input := input; destination := destination; output := output |} :: suf)
Hitem_not_equiv: projT1 (existT x v) ∉ equivocating
m: message
Hm: output = Some m
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ {| l := existT x v; input := input; destination := destination; output := output |} :: suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := existT x v; input := input; destination := destination; output := output |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
o: option (composite_transition_item IM)
odescriptor: equivocator_descriptors IM
Hpr: equivocators_transition_item_project IM eqv_descriptors'' {| l := existT x v; input := input; destination := destination; output := output |} = Some (o, odescriptor)
Hpr_pre_item: match o with | Some item' => Some ([item'], odescriptor) | None => Some ([], odescriptor) end = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is pre
Hv: composite_valid (equivocator_IM IM) (existT x v) (finite_trace_last is pre, input)
Ht: transition (existT x v) (finite_trace_last is pre, input) = (destination, output)
Hsuf'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last (finite_trace_last is pre) [{| l := existT x v; input := input; destination := destination; output := output |}]) suf
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM (projT1 (existT x v))) (destination (projT1 (existT x v)))
Heqv_descriptors'': eqv_descriptors'' (projT1 (existT x v)) = Existing 0

Exists (field_selector VLSM.output m) pre_itemX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
x: index
v: vlabel (equivocator_IM IM x)
input: option message
destination: _composite_state (equivocator_IM IM)
output: option message
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ {| l := existT x v; input := input; destination := destination; output := output |} :: suf)
Hitem_not_equiv: x ∉ equivocating
m: message
Hm: output = Some m
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ {| l := existT x v; input := input; destination := destination; output := output |} :: suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := existT x v; input := input; destination := destination; output := output |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
o: option (composite_transition_item IM)
odescriptor: equivocator_descriptors IM
Hpr: equivocators_transition_item_project IM eqv_descriptors'' {| l := existT x v; input := input; destination := destination; output := output |} = Some (o, odescriptor)
Hpr_pre_item: match o with | Some item' => Some ([item'], odescriptor) | None => Some ([], odescriptor) end = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is pre
Hv: vvalid (equivocator_IM IM x) v (finite_trace_last is pre x, input)
Ht: vtransition FreeE (existT x v) (finite_trace_last is pre, input) = (destination, output)
Hsuf'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last (finite_trace_last is pre) [{| l := existT x v; input := input; destination := destination; output := output |}]) suf
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM x) (destination x)
Heqv_descriptors'': eqv_descriptors'' x = Existing 0

Exists (field_selector VLSM.output m) pre_itemX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
x: index
v: vlabel (equivocator_IM IM x)
input: option message
destination: _composite_state (equivocator_IM IM)
output: option message
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ {| l := existT x v; input := input; destination := destination; output := output |} :: suf)
Hitem_not_equiv: x ∉ equivocating
m: message
Hm: output = Some m
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ {| l := existT x v; input := input; destination := destination; output := output |} :: suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := existT x v; input := input; destination := destination; output := output |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
o: option (composite_transition_item IM)
odescriptor: equivocator_descriptors IM
Hpr: equivocators_transition_item_project IM eqv_descriptors'' {| l := existT x v; input := input; destination := destination; output := output |} = Some (o, odescriptor)
Hpr_pre_item: match o with | Some item' => Some ([item'], odescriptor) | None => Some ([], odescriptor) end = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is pre
Hv: vvalid (equivocator_IM IM x) v (finite_trace_last is pre x, input)
Ht: transition (existT x v) (finite_trace_last is pre, input) = (destination, output)
Hsuf'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last (finite_trace_last is pre) [{| l := existT x v; input := input; destination := destination; output := output |}]) suf
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM x) (destination x)
Heqv_descriptors'': eqv_descriptors'' x = Existing 0

Exists (field_selector VLSM.output m) pre_itemX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
x: index
v: vlabel (equivocator_IM IM x)
input: option message
destination: _composite_state (equivocator_IM IM)
output: option message
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ {| l := existT x v; input := input; destination := destination; output := output |} :: suf)
Hitem_not_equiv: x ∉ equivocating
m: message
Hm: output = Some m
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ {| l := existT x v; input := input; destination := destination; output := output |} :: suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := existT x v; input := input; destination := destination; output := output |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
o: option (composite_transition_item IM)
odescriptor: equivocator_descriptors IM
Hpr: equivocators_transition_item_project IM eqv_descriptors'' {| l := existT x v; input := input; destination := destination; output := output |} = Some (o, odescriptor)
Hpr_pre_item: match o with | Some item' => Some ([item'], odescriptor) | None => Some ([], odescriptor) end = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is pre
Hv: vvalid (equivocator_IM IM x) v (finite_trace_last is pre x, input)
Ht: (let (si', om') := vtransition (equivocator_IM IM x) v (finite_trace_last is pre x, input) in (state_update (equivocator_IM IM) (finite_trace_last is pre) x si', om')) = (destination, output)
Hsuf'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last (finite_trace_last is pre) [{| l := existT x v; input := input; destination := destination; output := output |}]) suf
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM x) (destination x)
Heqv_descriptors'': eqv_descriptors'' x = Existing 0

Exists (field_selector VLSM.output m) pre_itemX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
x: index
v: vlabel (equivocator_IM IM x)
input: option message
destination: _composite_state (equivocator_IM IM)
output: option message
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ {| l := existT x v; input := input; destination := destination; output := output |} :: suf)
Hitem_not_equiv: x ∉ equivocating
m: message
Hm: output = Some m
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ {| l := existT x v; input := input; destination := destination; output := output |} :: suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := existT x v; input := input; destination := destination; output := output |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
o: option (composite_transition_item IM)
odescriptor: equivocator_descriptors IM
Hpr: equivocators_transition_item_project IM eqv_descriptors'' {| l := existT x v; input := input; destination := destination; output := output |} = Some (o, odescriptor)
Hpr_pre_item: match o with | Some item' => Some ([item'], odescriptor) | None => Some ([], odescriptor) end = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is pre
Hv: vvalid (equivocator_IM IM x) v (finite_trace_last is pre x, input)
si': state
om': option message
Hti: vtransition (equivocator_IM IM x) v (finite_trace_last is pre x, input) = (si', om')
Ht: (state_update (equivocator_IM IM) (finite_trace_last is pre) x si', om') = (destination, output)
Hsuf'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last (finite_trace_last is pre) [{| l := existT x v; input := input; destination := destination; output := output |}]) suf
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM x) (destination x)
Heqv_descriptors'': eqv_descriptors'' x = Existing 0

Exists (field_selector VLSM.output m) pre_itemX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
x: index
v: vlabel (equivocator_IM IM x)
input: option message
destination: _composite_state (equivocator_IM IM)
output: option message
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ {| l := existT x v; input := input; destination := destination; output := output |} :: suf)
Hitem_not_equiv: x ∉ equivocating
m: message
Hm: output = Some m
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ {| l := existT x v; input := input; destination := destination; output := output |} :: suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := existT x v; input := input; destination := destination; output := output |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
o: option (composite_transition_item IM)
odescriptor: equivocator_descriptors IM
Hpr: equivocators_transition_item_project IM eqv_descriptors'' {| l := existT x v; input := input; destination := destination; output := output |} = Some (o, odescriptor)
Hpr_pre_item: match o with | Some item' => Some ([item'], odescriptor) | None => Some ([], odescriptor) end = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is pre
Hv: vvalid (equivocator_IM IM x) v (finite_trace_last is pre x, input)
si': state
om': option message
Hti: vtransition (equivocator_IM IM x) v (finite_trace_last is pre x, input) = (si', om')
Ht: (state_update (equivocator_IM IM) (finite_trace_last is pre) x si', om') = (destination, output)
Hsuf'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last (finite_trace_last is pre) [{| l := existT x v; input := input; destination := destination; output := output |}]) suf
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM x) (destination x)
Heqv_descriptors'': eqv_descriptors'' x = Existing 0
H0: state_update (equivocator_IM IM) (finite_trace_last is pre) x si' = destination
H1: om' = output

Exists (field_selector VLSM.output m) pre_itemX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
x: index
v: vlabel (equivocator_IM IM x)
input: option message
pre, suf: list transition_item
m: message
si': state
Htr: finite_valid_trace XE is (pre ++ {| l := existT x v; input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)
Hitem_not_equiv: x ∉ equivocating
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ {| l := existT x v; input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := existT x v; input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
o: option (composite_transition_item IM)
odescriptor: equivocator_descriptors IM
Hpr: equivocators_transition_item_project IM eqv_descriptors'' {| l := existT x v; input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} = Some (o, odescriptor)
Hpr_pre_item: match o with | Some item' => Some ([item'], odescriptor) | None => Some ([], odescriptor) end = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is pre
Hv: vvalid (equivocator_IM IM x) v (finite_trace_last is pre x, input)
Ht: (state_update (equivocator_IM IM) (finite_trace_last is pre) x si', Some m) = (state_update (equivocator_IM IM) (finite_trace_last is pre) x si', Some m)
Hti: vtransition (equivocator_IM IM x) v (finite_trace_last is pre x, input) = (si', Some m)
Hsuf'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last (finite_trace_last is pre) [{| l := existT x v; input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |}]) suf
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM x) (state_update (equivocator_IM IM) (finite_trace_last is pre) x si' x)
Heqv_descriptors'': eqv_descriptors'' x = Existing 0

Exists (field_selector output m) pre_itemX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
x: index
v: vlabel (equivocator_IM IM x)
input: option message
pre, suf: list transition_item
m: message
si': state
Htr: finite_valid_trace XE is (pre ++ {| l := existT x v; input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)
Hitem_not_equiv: x ∉ equivocating
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ {| l := existT x v; input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := existT x v; input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
o: option (composite_transition_item IM)
odescriptor: equivocator_descriptors IM
Hpr: equivocators_transition_item_project IM eqv_descriptors'' {| l := existT x v; input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} = Some (o, odescriptor)
Hpr_pre_item: match o with | Some item' => Some ([item'], odescriptor) | None => Some ([], odescriptor) end = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is pre
Hv: vvalid (equivocator_IM IM x) v (finite_trace_last is pre x, input)
Ht: (state_update (equivocator_IM IM) (finite_trace_last is pre) x si', Some m) = (state_update (equivocator_IM IM) (finite_trace_last is pre) x si', Some m)
Hti: vtransition (equivocator_IM IM x) v (finite_trace_last is pre x, input) = (si', Some m)
Hsuf'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last (finite_trace_last is pre) [{| l := existT x v; input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |}]) suf
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM x) si'
Heqv_descriptors'': eqv_descriptors'' x = Existing 0

Exists (field_selector output m) pre_itemX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
x: index
v: vlabel (equivocator_IM IM x)
input: option message
pre, suf: list transition_item
m: message
si': state
Htr: finite_valid_trace XE is (pre ++ {| l := existT x v; input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)
Hitem_not_equiv: x ∉ equivocating
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ {| l := existT x v; input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := existT x v; input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
o: option (composite_transition_item IM)
odescriptor: equivocator_descriptors IM
Hpr: equivocators_transition_item_project IM eqv_descriptors'' {| l := existT x v; input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} = Some (o, odescriptor)
Hpr_pre_item: match o with | Some item' => Some ([item'], odescriptor) | None => Some ([], odescriptor) end = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is pre
Hv: vvalid (equivocator_IM IM x) v (finite_trace_last is pre x, input)
Hti: vtransition (equivocator_IM IM x) v (finite_trace_last is pre x, input) = (si', Some m)
Hsuf'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last (finite_trace_last is pre) [{| l := existT x v; input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |}]) suf
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM x) si'
Heqv_descriptors'': eqv_descriptors'' x = Existing 0

Exists (field_selector output m) pre_itemX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
x: index
v: vlabel (equivocator_IM IM x)
input: option message
pre, suf: list transition_item
m: message
si': state
Htr: finite_valid_trace XE is (pre ++ {| l := existT x v; input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)
Hitem_not_equiv: x ∉ equivocating
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ {| l := existT x v; input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := existT x v; input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
o: option (composite_transition_item IM)
odescriptor: equivocator_descriptors IM
Hpr: equivocators_transition_item_project IM eqv_descriptors'' {| l := existT x v; input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} = Some (o, odescriptor)
Hpr_pre_item: match o with | Some item' => Some ([item'], odescriptor) | None => Some ([], odescriptor) end = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is pre
Hv: vvalid (equivocator_IM IM x) v (finite_trace_last is pre x, input)
Hti: vtransition (equivocator_IM IM x) v (finite_trace_last is pre x, input) = (si', Some m)
Hsuf'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last (finite_trace_last is pre) [{| l := existT x v; input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |}]) suf
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM x) si'
Heqv_descriptors'': eqv_descriptors'' x = Existing 0
li: vlabel (IM x)
Hsndv: v = ContinueWith 0 li

Exists (field_selector output m) pre_itemX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
x: index
v: vlabel (equivocator_IM IM x)
input: option message
pre, suf: list transition_item
m: message
si': state
Htr: finite_valid_trace XE is (pre ++ {| l := existT x v; input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)
Hitem_not_equiv: x ∉ equivocating
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ {| l := existT x v; input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := existT x v; input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
o: option (composite_transition_item IM)
odescriptor: equivocator_descriptors IM
Hpr: match equivocator_vlsm_transition_item_project (IM (projT1 (l {| l := existT x v; input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |}))) (composite_transition_item_projection (equivocator_IM IM) {| l := existT x v; input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |}) (eqv_descriptors'' (projT1 (l {| l := existT x v; input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |}))) with | Some (Some item', deqv') => Some (Some {| l := existT (projT1 (l {| l := existT x v; input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |})) (l item'); input := VLSM.input {| l := existT x v; input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |}; destination := equivocators_state_project IM eqv_descriptors'' (destination {| l := existT x v; input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |}); output := output {| l := existT x v; input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} |}, equivocator_descriptors_update IM eqv_descriptors'' (projT1 (l {| l := existT x v; input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |})) deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update IM eqv_descriptors'' (projT1 (l {| l := existT x v; input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |})) deqv') | None => None end = Some (o, odescriptor)
Hpr_pre_item: match o with | Some item' => Some ([item'], odescriptor) | None => Some ([], odescriptor) end = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is pre
Hv: vvalid (equivocator_IM IM x) v (finite_trace_last is pre x, input)
Hti: vtransition (equivocator_IM IM x) v (finite_trace_last is pre x, input) = (si', Some m)
Hsuf'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last (finite_trace_last is pre) [{| l := existT x v; input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |}]) suf
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM x) si'
Heqv_descriptors'': eqv_descriptors'' x = Existing 0
li: vlabel (IM x)
Hsndv: v = ContinueWith 0 li

Exists (field_selector output m) pre_itemX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
x: index
v: vlabel (equivocator_IM IM x)
input: option message
pre, suf: list transition_item
m: message
si': state
Htr: finite_valid_trace XE is (pre ++ {| l := existT x v; input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)
Hitem_not_equiv: x ∉ equivocating
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ {| l := existT x v; input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := existT x v; input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
o: option (composite_transition_item IM)
odescriptor: equivocator_descriptors IM
Hpr: match equivocator_vlsm_transition_item_project (IM x) (composite_transition_item_projection (equivocator_IM IM) {| l := existT x v; input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |}) (eqv_descriptors'' x) with | Some (Some item', deqv') => Some (Some {| l := existT x (l item'); input := input; destination := equivocators_state_project IM eqv_descriptors'' (state_update (equivocator_IM IM) (finite_trace_last is pre) x si'); output := Some m |}, equivocator_descriptors_update IM eqv_descriptors'' x deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update IM eqv_descriptors'' x deqv') | None => None end = Some (o, odescriptor)
Hpr_pre_item: match o with | Some item' => Some ([item'], odescriptor) | None => Some ([], odescriptor) end = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is pre
Hv: vvalid (equivocator_IM IM x) v (finite_trace_last is pre x, input)
Hti: vtransition (equivocator_IM IM x) v (finite_trace_last is pre x, input) = (si', Some m)
Hsuf'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last (finite_trace_last is pre) [{| l := existT x v; input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |}]) suf
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM x) si'
Heqv_descriptors'': eqv_descriptors'' x = Existing 0
li: vlabel (IM x)
Hsndv: v = ContinueWith 0 li

Exists (field_selector output m) pre_itemX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
x: index
input: option message
pre, suf: list transition_item
m: message
si': state
li: vlabel (IM x)
Htr: finite_valid_trace XE is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)
Hitem_not_equiv: x ∉ equivocating
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
o: option (composite_transition_item IM)
odescriptor: equivocator_descriptors IM
Hpr: match equivocator_vlsm_transition_item_project (IM x) (composite_transition_item_projection (equivocator_IM IM) {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |}) (eqv_descriptors'' x) with | Some (Some item', deqv') => Some (Some {| l := existT x (l item'); input := input; destination := equivocators_state_project IM eqv_descriptors'' (state_update (equivocator_IM IM) (finite_trace_last is pre) x si'); output := Some m |}, equivocator_descriptors_update IM eqv_descriptors'' x deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update IM eqv_descriptors'' x deqv') | None => None end = Some (o, odescriptor)
Hpr_pre_item: match o with | Some item' => Some ([item'], odescriptor) | None => Some ([], odescriptor) end = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is pre
Hsuf'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last (finite_trace_last is pre) [{| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |}]) suf
Hti: vtransition (equivocator_IM IM x) (ContinueWith 0 li) (finite_trace_last is pre x, input) = (si', Some m)
Hv: vvalid (equivocator_IM IM x) (ContinueWith 0 li) (finite_trace_last is pre x, input)
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM x) si'
Heqv_descriptors'': eqv_descriptors'' x = Existing 0

Exists (field_selector output m) pre_itemX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
x: index
input: option message
pre, suf: list transition_item
m: message
si': state
li: vlabel (IM x)
Htr: finite_valid_trace XE is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)
Hitem_not_equiv: x ∉ equivocating
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
o: option (composite_transition_item IM)
odescriptor: equivocator_descriptors IM
Hpr: match equivocator_vlsm_transition_item_project (IM x) (composite_transition_item_projection_from_eq (equivocator_IM IM) {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} (projT1 (l {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |})) eq_refl) (eqv_descriptors'' x) with | Some (Some item', deqv') => Some (Some {| l := existT x (l item'); input := input; destination := equivocators_state_project IM eqv_descriptors'' (state_update (equivocator_IM IM) (finite_trace_last is pre) x si'); output := Some m |}, equivocator_descriptors_update IM eqv_descriptors'' x deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update IM eqv_descriptors'' x deqv') | None => None end = Some (o, odescriptor)
Hpr_pre_item: match o with | Some item' => Some ([item'], odescriptor) | None => Some ([], odescriptor) end = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is pre
Hsuf'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last (finite_trace_last is pre) [{| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |}]) suf
Hti: vtransition (equivocator_IM IM x) (ContinueWith 0 li) (finite_trace_last is pre x, input) = (si', Some m)
Hv: vvalid (equivocator_IM IM x) (ContinueWith 0 li) (finite_trace_last is pre x, input)
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM x) si'
Heqv_descriptors'': eqv_descriptors'' x = Existing 0

Exists (field_selector output m) pre_itemX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
x: index
input: option message
pre, suf: list transition_item
m: message
si': state
li: vlabel (IM x)
Htr: finite_valid_trace XE is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)
Hitem_not_equiv: x ∉ equivocating
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
o: option (composite_transition_item IM)
odescriptor: equivocator_descriptors IM
Hpr: match equivocator_vlsm_transition_item_project (IM x) {| l := eq_rect_r (λ n : index, vlabel (equivocator_IM IM n)) (projT2 (l {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |})) eq_refl; input := VLSM.input {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |}; destination := destination {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} (projT1 (l {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |})); output := output {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} |} (eqv_descriptors'' x) with | Some (Some item', deqv') => Some (Some {| l := existT x (l item'); input := input; destination := equivocators_state_project IM eqv_descriptors'' (state_update (equivocator_IM IM) (finite_trace_last is pre) x si'); output := Some m |}, equivocator_descriptors_update IM eqv_descriptors'' x deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update IM eqv_descriptors'' x deqv') | None => None end = Some (o, odescriptor)
Hpr_pre_item: match o with | Some item' => Some ([item'], odescriptor) | None => Some ([], odescriptor) end = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is pre
Hsuf'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last (finite_trace_last is pre) [{| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |}]) suf
Hti: vtransition (equivocator_IM IM x) (ContinueWith 0 li) (finite_trace_last is pre x, input) = (si', Some m)
Hv: vvalid (equivocator_IM IM x) (ContinueWith 0 li) (finite_trace_last is pre x, input)
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM x) si'
Heqv_descriptors'': eqv_descriptors'' x = Existing 0

Exists (field_selector output m) pre_itemX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
x: index
input: option message
pre, suf: list transition_item
m: message
si': state
li: vlabel (IM x)
Htr: finite_valid_trace XE is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)
Hitem_not_equiv: x ∉ equivocating
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
o: option (composite_transition_item IM)
odescriptor: equivocator_descriptors IM
Hpr: match equivocator_vlsm_transition_item_project (IM x) {| l := eq_rect_r (λ n : index, vlabel (equivocator_IM IM n)) (ContinueWith 0 li) eq_refl; input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si' x; output := Some m |} (eqv_descriptors'' x) with | Some (Some item', deqv') => Some (Some {| l := existT x (l item'); input := input; destination := equivocators_state_project IM eqv_descriptors'' (state_update (equivocator_IM IM) (finite_trace_last is pre) x si'); output := Some m |}, equivocator_descriptors_update IM eqv_descriptors'' x deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update IM eqv_descriptors'' x deqv') | None => None end = Some (o, odescriptor)
Hpr_pre_item: match o with | Some item' => Some ([item'], odescriptor) | None => Some ([], odescriptor) end = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is pre
Hsuf'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last (finite_trace_last is pre) [{| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |}]) suf
Hti: vtransition (equivocator_IM IM x) (ContinueWith 0 li) (finite_trace_last is pre x, input) = (si', Some m)
Hv: vvalid (equivocator_IM IM x) (ContinueWith 0 li) (finite_trace_last is pre x, input)
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM x) si'
Heqv_descriptors'': eqv_descriptors'' x = Existing 0

Exists (field_selector output m) pre_itemX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
x: index
input: option message
pre, suf: list transition_item
m: message
si': state
li: vlabel (IM x)
Htr: finite_valid_trace XE is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)
Hitem_not_equiv: x ∉ equivocating
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
o: option (composite_transition_item IM)
odescriptor: equivocator_descriptors IM
Hpr: match equivocator_vlsm_transition_item_project (IM x) {| l := eq_rect x (λ y : index, vlabel (equivocator_IM IM y)) (ContinueWith 0 li) x (eq_sym eq_refl); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si' x; output := Some m |} (eqv_descriptors'' x) with | Some (Some item', deqv') => Some (Some {| l := existT x (l item'); input := input; destination := equivocators_state_project IM eqv_descriptors'' (state_update (equivocator_IM IM) (finite_trace_last is pre) x si'); output := Some m |}, equivocator_descriptors_update IM eqv_descriptors'' x deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update IM eqv_descriptors'' x deqv') | None => None end = Some (o, odescriptor)
Hpr_pre_item: match o with | Some item' => Some ([item'], odescriptor) | None => Some ([], odescriptor) end = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is pre
Hsuf'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last (finite_trace_last is pre) [{| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |}]) suf
Hti: vtransition (equivocator_IM IM x) (ContinueWith 0 li) (finite_trace_last is pre x, input) = (si', Some m)
Hv: vvalid (equivocator_IM IM x) (ContinueWith 0 li) (finite_trace_last is pre x, input)
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM x) si'
Heqv_descriptors'': eqv_descriptors'' x = Existing 0

Exists (field_selector output m) pre_itemX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
x: index
input: option message
pre, suf: list transition_item
m: message
si': state
li: vlabel (IM x)
Htr: finite_valid_trace XE is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)
Hitem_not_equiv: x ∉ equivocating
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
o: option (composite_transition_item IM)
odescriptor: equivocator_descriptors IM
Hpr: match equivocator_vlsm_transition_item_project (IM x) {| l := ContinueWith 0 li; input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si' x; output := Some m |} (eqv_descriptors'' x) with | Some (Some item', deqv') => Some (Some {| l := existT x (l item'); input := input; destination := equivocators_state_project IM eqv_descriptors'' (state_update (equivocator_IM IM) (finite_trace_last is pre) x si'); output := Some m |}, equivocator_descriptors_update IM eqv_descriptors'' x deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update IM eqv_descriptors'' x deqv') | None => None end = Some (o, odescriptor)
Hpr_pre_item: match o with | Some item' => Some ([item'], odescriptor) | None => Some ([], odescriptor) end = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is pre
Hsuf'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last (finite_trace_last is pre) [{| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |}]) suf
Hti: vtransition (equivocator_IM IM x) (ContinueWith 0 li) (finite_trace_last is pre x, input) = (si', Some m)
Hv: vvalid (equivocator_IM IM x) (ContinueWith 0 li) (finite_trace_last is pre x, input)
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM x) si'
Heqv_descriptors'': eqv_descriptors'' x = Existing 0

Exists (field_selector output m) pre_itemX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
x: index
input: option message
pre, suf: list transition_item
m: message
si': state
li: vlabel (IM x)
Htr: finite_valid_trace XE is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)
Hitem_not_equiv: x ∉ equivocating
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
o: option (composite_transition_item IM)
odescriptor: equivocator_descriptors IM
Hpr: match equivocator_vlsm_transition_item_project (IM x) {| l := ContinueWith 0 li; input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si' x; output := Some m |} (Existing 0) with | Some (Some item', deqv') => Some (Some {| l := existT x (l item'); input := input; destination := equivocators_state_project IM eqv_descriptors'' (state_update (equivocator_IM IM) (finite_trace_last is pre) x si'); output := Some m |}, equivocator_descriptors_update IM eqv_descriptors'' x deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update IM eqv_descriptors'' x deqv') | None => None end = Some (o, odescriptor)
Hpr_pre_item: match o with | Some item' => Some ([item'], odescriptor) | None => Some ([], odescriptor) end = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is pre
Hsuf'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last (finite_trace_last is pre) [{| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |}]) suf
Hti: vtransition (equivocator_IM IM x) (ContinueWith 0 li) (finite_trace_last is pre x, input) = (si', Some m)
Hv: vvalid (equivocator_IM IM x) (ContinueWith 0 li) (finite_trace_last is pre x, input)
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM x) si'
Heqv_descriptors'': eqv_descriptors'' x = Existing 0

Exists (field_selector output m) pre_itemX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
x: index
input: option message
pre, suf: list transition_item
m: message
si': state
li: vlabel (IM x)
Htr: finite_valid_trace XE is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)
Hitem_not_equiv: x ∉ equivocating
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
o: option (composite_transition_item IM)
odescriptor: equivocator_descriptors IM
Hpr: match match equivocator_state_project (state_update (equivocator_IM IM) (finite_trace_last is pre) x si' x) 0 with | Some sj => if decide (0 = 0) then Some ( Some {| l := li; input := input; destination := sj; output := Some m |}, Existing 0) else Some (None, Existing 0) | None => None end with | Some (Some item', deqv') => Some (Some {| l := existT x (l item'); input := input; destination := equivocators_state_project IM eqv_descriptors'' (state_update (equivocator_IM IM) (finite_trace_last is pre) x si'); output := Some m |}, equivocator_descriptors_update IM eqv_descriptors'' x deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update IM eqv_descriptors'' x deqv') | None => None end = Some (o, odescriptor)
Hpr_pre_item: match o with | Some item' => Some ([item'], odescriptor) | None => Some ([], odescriptor) end = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is pre
Hsuf'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last (finite_trace_last is pre) [{| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |}]) suf
Hti: vtransition (equivocator_IM IM x) (ContinueWith 0 li) (finite_trace_last is pre x, input) = (si', Some m)
Hv: vvalid (equivocator_IM IM x) (ContinueWith 0 li) (finite_trace_last is pre x, input)
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM x) si'
Heqv_descriptors'': eqv_descriptors'' x = Existing 0

Exists (field_selector output m) pre_itemX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
x: index
input: option message
pre, suf: list transition_item
m: message
si': state
li: vlabel (IM x)
Htr: finite_valid_trace XE is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)
Hitem_not_equiv: x ∉ equivocating
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
o: option (composite_transition_item IM)
odescriptor: equivocator_descriptors IM
Hpr: match match equivocator_state_project si' 0 with | Some sj => if decide (0 = 0) then Some ( Some {| l := li; input := input; destination := sj; output := Some m |}, Existing 0) else Some (None, Existing 0) | None => None end with | Some (Some item', deqv') => Some (Some {| l := existT x (l item'); input := input; destination := equivocators_state_project IM eqv_descriptors'' (state_update (equivocator_IM IM) (finite_trace_last is pre) x si'); output := Some m |}, equivocator_descriptors_update IM eqv_descriptors'' x deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update IM eqv_descriptors'' x deqv') | None => None end = Some (o, odescriptor)
Hpr_pre_item: match o with | Some item' => Some ([item'], odescriptor) | None => Some ([], odescriptor) end = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is pre
Hsuf'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last (finite_trace_last is pre) [{| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |}]) suf
Hti: vtransition (equivocator_IM IM x) (ContinueWith 0 li) (finite_trace_last is pre x, input) = (si', Some m)
Hv: vvalid (equivocator_IM IM x) (ContinueWith 0 li) (finite_trace_last is pre x, input)
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM x) si'
Heqv_descriptors'': eqv_descriptors'' x = Existing 0

Exists (field_selector output m) pre_itemX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
x: index
input: option message
pre, suf: list transition_item
m: message
si': state
li: vlabel (IM x)
Htr: finite_valid_trace XE is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)
Hitem_not_equiv: x ∉ equivocating
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
o: option (composite_transition_item IM)
odescriptor: equivocator_descriptors IM
Hpr: match (if decide (0 = 0) then Some (Some {| l := li; input := input; destination := equivocator_state_zero si'; output := Some m |}, Existing 0) else Some (None, Existing 0)) with | Some (Some item', deqv') => Some (Some {| l := existT x (l item'); input := input; destination := equivocators_state_project IM eqv_descriptors'' (state_update (equivocator_IM IM) (finite_trace_last is pre) x si'); output := Some m |}, equivocator_descriptors_update IM eqv_descriptors'' x deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update IM eqv_descriptors'' x deqv') | None => None end = Some (o, odescriptor)
Hpr_pre_item: match o with | Some item' => Some ([item'], odescriptor) | None => Some ([], odescriptor) end = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is pre
Hsuf'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last (finite_trace_last is pre) [{| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |}]) suf
Hti: vtransition (equivocator_IM IM x) (ContinueWith 0 li) (finite_trace_last is pre x, input) = (si', Some m)
Hv: vvalid (equivocator_IM IM x) (ContinueWith 0 li) (finite_trace_last is pre x, input)
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM x) si'
Heqv_descriptors'': eqv_descriptors'' x = Existing 0

Exists (field_selector output m) pre_itemX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
x: index
input: option message
pre, suf: list transition_item
m: message
si': state
li: vlabel (IM x)
Htr: finite_valid_trace XE is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)
Hitem_not_equiv: x ∉ equivocating
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
o: option (composite_transition_item IM)
odescriptor: equivocator_descriptors IM
Hpr: Some (Some {| l := existT x (l {| l := li; input := input; destination := equivocator_state_zero si'; output := Some m |}); input := input; destination := equivocators_state_project IM eqv_descriptors'' (state_update (equivocator_IM IM) (finite_trace_last is pre) x si'); output := Some m |}, equivocator_descriptors_update IM eqv_descriptors'' x (Existing 0)) = Some (o, odescriptor)
Hpr_pre_item: match o with | Some item' => Some ([item'], odescriptor) | None => Some ([], odescriptor) end = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is pre
Hsuf'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last (finite_trace_last is pre) [{| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |}]) suf
Hti: vtransition (equivocator_IM IM x) (ContinueWith 0 li) (finite_trace_last is pre x, input) = (si', Some m)
Hv: vvalid (equivocator_IM IM x) (ContinueWith 0 li) (finite_trace_last is pre x, input)
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM x) si'
Heqv_descriptors'': eqv_descriptors'' x = Existing 0

Exists (field_selector output m) pre_itemX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
x: index
input: option message
pre, suf: list transition_item
m: message
si': state
li: vlabel (IM x)
Htr: finite_valid_trace XE is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)
Hitem_not_equiv: x ∉ equivocating
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
o: option (composite_transition_item IM)
odescriptor: equivocator_descriptors IM
Hpr: Some (Some {| l := existT x (l {| l := li; input := input; destination := equivocator_state_zero si'; output := Some m |}); input := input; destination := equivocators_state_project IM eqv_descriptors'' (state_update (equivocator_IM IM) (finite_trace_last is pre) x si'); output := Some m |}, equivocator_descriptors_update IM eqv_descriptors'' x (Existing 0)) = Some (o, odescriptor)
Hpr_pre_item: match o with | Some item' => Some ([item'], odescriptor) | None => Some ([], odescriptor) end = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is pre
Hsuf'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last (finite_trace_last is pre) [{| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |}]) suf
Hti: vtransition (equivocator_IM IM x) (ContinueWith 0 li) (finite_trace_last is pre x, input) = (si', Some m)
Hv: vvalid (equivocator_IM IM x) (ContinueWith 0 li) (finite_trace_last is pre x, input)
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM x) si'
Heqv_descriptors'': eqv_descriptors'' x = Existing 0
H0: Some {| l := existT x li; input := input; destination := equivocators_state_project IM eqv_descriptors'' (state_update (equivocator_IM IM) (finite_trace_last is pre) x si'); output := Some m |} = o
H1: equivocator_descriptors_update IM eqv_descriptors'' x (Existing 0) = odescriptor

Exists (field_selector output m) pre_itemX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
x: index
input: option message
pre, suf: list transition_item
m: message
si': state
li: vlabel (IM x)
Htr: finite_valid_trace XE is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)
Hitem_not_equiv: x ∉ equivocating
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
Hpr: Some (Some {| l := existT x (l {| l := li; input := input; destination := equivocator_state_zero si'; output := Some m |}); input := input; destination := equivocators_state_project IM eqv_descriptors'' (state_update (equivocator_IM IM) (finite_trace_last is pre) x si'); output := Some m |}, equivocator_descriptors_update IM eqv_descriptors'' x (Existing 0)) = Some (Some {| l := existT x li; input := input; destination := equivocators_state_project IM eqv_descriptors'' (state_update (equivocator_IM IM) (finite_trace_last is pre) x si'); output := Some m |}, equivocator_descriptors_update IM eqv_descriptors'' x (Existing 0))
Hpr_pre_item: Some ([{| l := existT x li; input := input; destination := equivocators_state_project IM eqv_descriptors'' (state_update (equivocator_IM IM) (finite_trace_last is pre) x si'); output := Some m |}], equivocator_descriptors_update IM eqv_descriptors'' x (Existing 0)) = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is pre
Hsuf'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last (finite_trace_last is pre) [{| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |}]) suf
Hti: vtransition (equivocator_IM IM x) (ContinueWith 0 li) (finite_trace_last is pre x, input) = (si', Some m)
Hv: vvalid (equivocator_IM IM x) (ContinueWith 0 li) (finite_trace_last is pre x, input)
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM x) si'
Heqv_descriptors'': eqv_descriptors'' x = Existing 0

Exists (field_selector output m) pre_itemX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
x: index
input: option message
pre, suf: list transition_item
m: message
si': state
li: vlabel (IM x)
Htr: finite_valid_trace XE is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)
Hitem_not_equiv: x ∉ equivocating
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
Hpr_pre_item: Some ([{| l := existT x li; input := input; destination := equivocators_state_project IM eqv_descriptors'' (state_update (equivocator_IM IM) (finite_trace_last is pre) x si'); output := Some m |}], equivocator_descriptors_update IM eqv_descriptors'' x (Existing 0)) = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is pre
Hsuf'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last (finite_trace_last is pre) [{| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |}]) suf
Hti: vtransition (equivocator_IM IM x) (ContinueWith 0 li) (finite_trace_last is pre x, input) = (si', Some m)
Hv: vvalid (equivocator_IM IM x) (ContinueWith 0 li) (finite_trace_last is pre x, input)
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM x) si'
Heqv_descriptors'': eqv_descriptors'' x = Existing 0

Exists (field_selector output m) pre_itemX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
x: index
input: option message
pre, suf: list transition_item
m: message
si': state
li: vlabel (IM x)
Htr: finite_valid_trace XE is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)
Hitem_not_equiv: x ∉ equivocating
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
Hpr_pre_item: Some ([{| l := existT x li; input := input; destination := equivocators_state_project IM eqv_descriptors'' (state_update (equivocator_IM IM) (finite_trace_last is pre) x si'); output := Some m |}], equivocator_descriptors_update IM eqv_descriptors'' x (Existing 0)) = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is pre
Hsuf'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last (finite_trace_last is pre) [{| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |}]) suf
Hti: vtransition (equivocator_IM IM x) (ContinueWith 0 li) (finite_trace_last is pre x, input) = (si', Some m)
Hv: vvalid (equivocator_IM IM x) (ContinueWith 0 li) (finite_trace_last is pre x, input)
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM x) si'
Heqv_descriptors'': eqv_descriptors'' x = Existing 0
H0: [{| l := existT x li; input := input; destination := equivocators_state_project IM eqv_descriptors'' (state_update (equivocator_IM IM) (finite_trace_last is pre) x si'); output := Some m |}] = pre_itemX
H1: equivocator_descriptors_update IM eqv_descriptors'' x (Existing 0) = eqv_descriptors'

Exists (field_selector output m) [{| l := existT x li; input := input; destination := equivocators_state_project IM eqv_descriptors'' (state_update (equivocator_IM IM) (finite_trace_last is pre) x si'); output := Some m |}]
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
x: index
input: option message
pre, suf: list transition_item
m: message
si': state
li: vlabel (IM x)
Htr: finite_valid_trace XE is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)
Hitem_not_equiv: x ∉ equivocating
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf))
initial_descriptors: equivocator_descriptors IM
preX', sufX'': list (composite_transition_item IM)
eqv_descriptors'': equivocator_descriptors IM
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ [{| l := existT x li; input := input; destination := equivocators_state_project IM eqv_descriptors'' (state_update (equivocator_IM IM) (finite_trace_last is pre) x si'); output := Some m |}] ++ sufX'')
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
Hpr_pre: equivocators_trace_project IM (equivocator_descriptors_update IM eqv_descriptors'' x (Existing 0)) pre = Some (preX', initial_descriptors)
Hpr_pre_item: Some ([{| l := existT x li; input := input; destination := equivocators_state_project IM eqv_descriptors'' (state_update (equivocator_IM IM) (finite_trace_last is pre) x si'); output := Some m |}], equivocator_descriptors_update IM eqv_descriptors'' x (Existing 0)) = Some ([{| l := existT x li; input := input; destination := equivocators_state_project IM eqv_descriptors'' (state_update (equivocator_IM IM) (finite_trace_last is pre) x si'); output := Some m |}], equivocator_descriptors_update IM eqv_descriptors'' x (Existing 0))
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ [{| l := existT x li; input := input; destination := equivocators_state_project IM eqv_descriptors'' (state_update (equivocator_IM IM) (finite_trace_last is pre) x si'); output := Some m |}] ++ sufX'')
Hpre'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is pre
Hsuf'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last (finite_trace_last is pre) [{| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |}]) suf
Hti: vtransition (equivocator_IM IM x) (ContinueWith 0 li) (finite_trace_last is pre x, input) = (si', Some m)
Hv: vvalid (equivocator_IM IM x) (ContinueWith 0 li) (finite_trace_last is pre x, input)
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ [{| l := existT x li; input := input; destination := equivocators_state_project IM eqv_descriptors'' (state_update (equivocator_IM IM) (finite_trace_last is pre) x si'); output := Some m |}] ++ sufX''))
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ [{| l := existT x li; input := input; destination := equivocators_state_project IM eqv_descriptors'' (state_update (equivocator_IM IM) (finite_trace_last is pre) x si'); output := Some m |}] ++ sufX'')
Hsingleton_d_item: is_singleton_state (IM x) si'
Heqv_descriptors'': eqv_descriptors'' x = Existing 0

Exists (field_selector output m) [{| l := existT x li; input := input; destination := equivocators_state_project IM eqv_descriptors'' (state_update (equivocator_IM IM) (finite_trace_last is pre) x si'); output := Some m |}]
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
x: index
input: option message
pre, suf: list transition_item
m: message
si': state
li: vlabel (IM x)
Htr: finite_valid_trace XE is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)
Hitem_not_equiv: x ∉ equivocating
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf))
initial_descriptors: equivocator_descriptors IM
preX', sufX'': list (composite_transition_item IM)
eqv_descriptors'': equivocator_descriptors IM
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ [{| l := existT x li; input := input; destination := equivocators_state_project IM eqv_descriptors'' (state_update (equivocator_IM IM) (finite_trace_last is pre) x si'); output := Some m |}] ++ sufX'')
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
Hpr_pre: equivocators_trace_project IM (equivocator_descriptors_update IM eqv_descriptors'' x (Existing 0)) pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ [{| l := existT x li; input := input; destination := equivocators_state_project IM eqv_descriptors'' (state_update (equivocator_IM IM) (finite_trace_last is pre) x si'); output := Some m |}] ++ sufX'')
Hpre'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is pre
Hsuf'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last (finite_trace_last is pre) [{| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |}]) suf
Hti: vtransition (equivocator_IM IM x) (ContinueWith 0 li) (finite_trace_last is pre x, input) = (si', Some m)
Hv: vvalid (equivocator_IM IM x) (ContinueWith 0 li) (finite_trace_last is pre x, input)
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ [{| l := existT x li; input := input; destination := equivocators_state_project IM eqv_descriptors'' (state_update (equivocator_IM IM) (finite_trace_last is pre) x si'); output := Some m |}] ++ sufX''))
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ [{| l := existT x li; input := input; destination := equivocators_state_project IM eqv_descriptors'' (state_update (equivocator_IM IM) (finite_trace_last is pre) x si'); output := Some m |}] ++ sufX'')
Hsingleton_d_item: is_singleton_state (IM x) si'
Heqv_descriptors'': eqv_descriptors'' x = Existing 0

Exists (field_selector output m) [{| l := existT x li; input := input; destination := equivocators_state_project IM eqv_descriptors'' (state_update (equivocator_IM IM) (finite_trace_last is pre) x si'); output := Some m |}]
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
x: index
input: option message
pre, suf: list transition_item
m: message
si': state
li: vlabel (IM x)
Htr: finite_valid_trace XE is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)
Hitem_not_equiv: x ∉ equivocating
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf))
initial_descriptors: equivocator_descriptors IM
preX', sufX'': list (composite_transition_item IM)
eqv_descriptors'': equivocator_descriptors IM
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ [{| l := existT x li; input := input; destination := equivocators_state_project IM eqv_descriptors'' (state_update (equivocator_IM IM) (finite_trace_last is pre) x si'); output := Some m |}] ++ sufX'')
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
Hpr_pre: equivocators_trace_project IM (equivocator_descriptors_update IM eqv_descriptors'' x (Existing 0)) pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ [{| l := existT x li; input := input; destination := equivocators_state_project IM eqv_descriptors'' (state_update (equivocator_IM IM) (finite_trace_last is pre) x si'); output := Some m |}] ++ sufX'')
Hpre'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is pre
Hsuf'_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last (finite_trace_last is pre) [{| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |}]) suf
Hti: vtransition (equivocator_IM IM x) (ContinueWith 0 li) (finite_trace_last is pre x, input) = (si', Some m)
Hv: vvalid (equivocator_IM IM x) (ContinueWith 0 li) (finite_trace_last is pre x, input)
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ [{| l := existT x li; input := input; destination := equivocators_state_project IM eqv_descriptors'' (state_update (equivocator_IM IM) (finite_trace_last is pre) x si'); output := Some m |}] ++ sufX''))
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ [{| l := existT x li; input := input; destination := equivocators_state_project IM eqv_descriptors'' (state_update (equivocator_IM IM) (finite_trace_last is pre) x si'); output := Some m |}] ++ sufX'')
Hsingleton_d_item: is_singleton_state (IM x) si'
Heqv_descriptors'': eqv_descriptors'' x = Existing 0

field_selector output m {| l := existT x li; input := input; destination := equivocators_state_project IM eqv_descriptors'' (state_update (equivocator_IM IM) (finite_trace_last is pre) x si'); output := Some m |}
reflexivity.
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
item: transition_item
Hitem: item ∈ tr
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) trX
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)

HasBeenReceivedCapability Free
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
item: transition_item
Hitem: item ∈ tr
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) trX
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)
HasBeenSentCapability Free
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
item: transition_item
Hitem: item ∈ tr
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) trX
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)

HasBeenReceivedCapability Free
assumption.
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
item: transition_item
Hitem: item ∈ tr
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr
HtrX_Pre: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) trX
Hlst_preX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)

HasBeenSentCapability Free
assumption. Qed.
Consider a valid_trace for the composition of equivocators with no message equivocation and fixed state equivocation.
Because any of its projections to the composition of original nodes contains all transitions from nodes not allowed to equivocate, then a final state of such a projection will be able to observe all messages sent or received by non-equivocating nodes in the initial trace.
Therefore if seeding the composition of equivocating nodes with these messages, the restriction of the initial trace to only the equivocating nodes will satisfy the trace_sub_item_input_is_seeded_or_sub_previously_sent property w.r.t. these messages, a sufficient condition for it being valid (finite_valid_trace_sub_projection).
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
tr: list (vtransition_item XE)
s:= finite_trace_last is tr: state
Htr: finite_valid_trace XE is tr
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)

trace_sub_item_input_is_seeded_or_sub_previously_sent (equivocator_IM IM) equivocating (no_additional_equivocations (free_composite_vlsm IM) lst_trX) tr
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
tr: list (vtransition_item XE)
s:= finite_trace_last is tr: state
Htr: finite_valid_trace XE is tr
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)

trace_sub_item_input_is_seeded_or_sub_previously_sent (equivocator_IM IM) equivocating (no_additional_equivocations (free_composite_vlsm IM) lst_trX) tr
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
tr: list (vtransition_item XE)
s:= finite_trace_last is tr: state
Htr: finite_valid_trace XE is tr
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Heq: tr = pre ++ [item] ++ suf
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) equivocating item

no_additional_equivocations (free_composite_vlsm IM) lst_trX m ∨ ( pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) equivocating pre_item)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
tr: list (vtransition_item XE)
s:= finite_trace_last is tr: state
Htr: finite_valid_trace XE is tr
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Heq: tr = pre ++ [item] ++ suf
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) equivocating item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX

no_additional_equivocations (free_composite_vlsm IM) lst_trX m ∨ ( pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) equivocating pre_item)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
tr: list (vtransition_item XE)
s:= finite_trace_last is tr: state
Htr: finite_valid_trace XE is tr
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Heq: tr = pre ++ [item] ++ suf
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) equivocating item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX

finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
tr: list (vtransition_item XE)
s:= finite_trace_last is tr: state
Htr: finite_valid_trace XE is tr
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Heq: tr = pre ++ [item] ++ suf
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) equivocating item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
no_additional_equivocations (free_composite_vlsm IM) lst_trX m ∨ ( pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) equivocating pre_item)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
tr: list (vtransition_item XE)
s:= finite_trace_last is tr: state
Htr: finite_valid_trace XE is tr
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Heq: tr = pre ++ [item] ++ suf
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) equivocating item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX

finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
tr: list (vtransition_item XE)
s:= finite_trace_last is tr: state
Htr: finite_valid_trace XE is tr
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Heq: tr = pre ++ [item] ++ suf
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) equivocating item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX

finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX → finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
tr: list (vtransition_item XE)
s:= finite_trace_last is tr: state
Htr: finite_valid_trace XE is tr
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Heq: tr = pre ++ [item] ++ suf
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) equivocating item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX

VLSM_incl_part (composite_vlsm_machine IM (free_constraint IM)) (pre_loaded_with_all_messages_vlsm_machine (free_composite_vlsm IM))
apply vlsm_incl_pre_loaded_with_all_messages_vlsm.
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
tr: list (vtransition_item XE)
s:= finite_trace_last is tr: state
Htr: finite_valid_trace XE is tr
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Heq: tr = pre ++ [item] ++ suf
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) equivocating item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX

no_additional_equivocations (free_composite_vlsm IM) lst_trX m ∨ ( pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) equivocating pre_item)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
tr: list (vtransition_item XE)
s:= finite_trace_last is tr: state
Htr: finite_valid_trace XE is tr
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Heq: tr = pre ++ [item] ++ suf
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) equivocating item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX

valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
tr: list (vtransition_item XE)
s:= finite_trace_last is tr: state
Htr: finite_valid_trace XE is tr
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Heq: tr = pre ++ [item] ++ suf
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) equivocating item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
no_additional_equivocations (free_composite_vlsm IM) lst_trX m ∨ ( pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) equivocating pre_item)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
tr: list (vtransition_item XE)
s:= finite_trace_last is tr: state
Htr: finite_valid_trace XE is tr
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Heq: tr = pre ++ [item] ++ suf
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) equivocating item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX

valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
tr: list (vtransition_item XE)
s:= finite_trace_last is tr: state
Htr: finite_valid_trace XE is tr
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Heq: tr = pre ++ [item] ++ suf
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) equivocating item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX

valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM descriptors s)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
tr: list (vtransition_item XE)
Htr: finite_valid_trace XE is tr
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Heq: tr = pre ++ [item] ++ suf
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) equivocating item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX

valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM descriptors (finite_trace_last is tr))
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
tr: list (vtransition_item XE)
Htr: finite_valid_trace XE is tr
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Heq: tr = pre ++ [item] ++ suf
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) equivocating item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX

valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM descriptors (finite_trace_last is tr))
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
tr: list (vtransition_item XE)
Htr: finite_valid_trace XE is tr
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Heq: tr = pre ++ [item] ++ suf
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) equivocating item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX

valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM descriptors (finite_trace_last is tr))
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
tr: list (vtransition_item XE)
Htr: finite_valid_trace XE is tr
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Heq: tr = pre ++ [item] ++ suf
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) equivocating item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX

valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
tr: list (vtransition_item XE)
Htr: finite_valid_trace XE is tr
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Heq: tr = pre ++ [item] ++ suf
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) equivocating item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX

finite_valid_trace_from (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) trX
apply HtrXPre.
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
tr: list (vtransition_item XE)
s:= finite_trace_last is tr: state
Htr: finite_valid_trace XE is tr
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Heq: tr = pre ++ [item] ++ suf
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) equivocating item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX

no_additional_equivocations (free_composite_vlsm IM) lst_trX m ∨ ( pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) equivocating pre_item)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
tr: list (vtransition_item XE)
s:= finite_trace_last is tr: state
Htr: finite_valid_trace XE is tr
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Heq: tr = pre ++ [item] ++ suf
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) equivocating item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX

finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
tr: list (vtransition_item XE)
s:= finite_trace_last is tr: state
Htr: finite_valid_trace XE is tr
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Heq: tr = pre ++ [item] ++ suf
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) equivocating item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr
no_additional_equivocations (free_composite_vlsm IM) lst_trX m ∨ ( pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) equivocating pre_item)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
tr: list (vtransition_item XE)
s:= finite_trace_last is tr: state
Htr: finite_valid_trace XE is tr
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Heq: tr = pre ++ [item] ++ suf
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) equivocating item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX

finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
tr: list (vtransition_item XE)
s:= finite_trace_last is tr: state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Heq: tr = pre ++ [item] ++ suf
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) equivocating item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX

finite_valid_trace XE is tr → finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
tr: list (vtransition_item XE)
s:= finite_trace_last is tr: state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Heq: tr = pre ++ [item] ++ suf
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) equivocating item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX

VLSM_incl_part (composite_vlsm_machine (equivocator_IM IM) (equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating)) (pre_loaded_with_all_messages_vlsm_machine FreeE)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
tr: list (vtransition_item XE)
s:= finite_trace_last is tr: state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Heq: tr = pre ++ [item] ++ suf
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) equivocating item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX

VLSM_incl (mk_vlsm (machine FreeE)) (mk_vlsm {| transition := vtransition FreeE; valid := vvalid FreeE |})
apply vlsm_incl_pre_loaded_with_all_messages_vlsm.
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
tr: list (vtransition_item XE)
s:= finite_trace_last is tr: state
Htr: finite_valid_trace XE is tr
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Heq: tr = pre ++ [item] ++ suf
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) equivocating item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is tr

no_additional_equivocations (free_composite_vlsm IM) lst_trX m ∨ ( pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) equivocating pre_item)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
s:= finite_trace_last is (pre ++ [item] ++ suf): state
descriptors: equivocator_descriptors IM
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hproper: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) equivocating item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [item] ++ suf) = Some (trX, initial_descriptors)
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [item] ++ suf)
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX

no_additional_equivocations (free_composite_vlsm IM) lst_trX m ∨ ( pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) equivocating pre_item)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_from XE is (pre ++ [item] ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [item] ++ suf): state
descriptors: equivocator_descriptors IM
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hproper: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) equivocating item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [item] ++ suf) = Some (trX, initial_descriptors)
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [item] ++ suf)
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX

no_additional_equivocations (free_composite_vlsm IM) lst_trX m ∨ ( pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) equivocating pre_item)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_from XE is (pre ++ [item] ++ suf)
Hsuf: finite_valid_trace_from XE is pre ∧ finite_valid_trace_from XE (finite_trace_last is pre) ([item] ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [item] ++ suf): state
descriptors: equivocator_descriptors IM
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hproper: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) equivocating item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [item] ++ suf) = Some (trX, initial_descriptors)
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [item] ++ suf)
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX

no_additional_equivocations (free_composite_vlsm IM) lst_trX m ∨ ( pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) equivocating pre_item)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_from XE is (pre ++ [item] ++ suf)
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([item] ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [item] ++ suf): state
descriptors: equivocator_descriptors IM
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hproper: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) equivocating item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [item] ++ suf) = Some (trX, initial_descriptors)
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [item] ++ suf)
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX

no_additional_equivocations (free_composite_vlsm IM) lst_trX m ∨ ( pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) equivocating pre_item)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_from XE is ((pre ++ [item]) ++ suf)
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([item] ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [item] ++ suf): state
descriptors: equivocator_descriptors IM
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hproper: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) equivocating item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [item] ++ suf) = Some (trX, initial_descriptors)
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [item] ++ suf)
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX

no_additional_equivocations (free_composite_vlsm IM) lst_trX m ∨ ( pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) equivocating pre_item)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_from XE is ((pre ++ [item]) ++ suf)
Hpre: finite_valid_trace_from XE is (pre ++ [item]) ∧ finite_valid_trace_from XE (finite_trace_last is (pre ++ [item])) suf
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([item] ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [item] ++ suf): state
descriptors: equivocator_descriptors IM
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hproper: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) equivocating item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [item] ++ suf) = Some (trX, initial_descriptors)
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [item] ++ suf)
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX

no_additional_equivocations (free_composite_vlsm IM) lst_trX m ∨ ( pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) equivocating pre_item)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_from XE is ((pre ++ [item]) ++ suf)
Hpre: finite_valid_trace_from XE is (pre ++ [item])
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([item] ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [item] ++ suf): state
descriptors: equivocator_descriptors IM
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hproper: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) equivocating item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [item] ++ suf) = Some (trX, initial_descriptors)
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [item] ++ suf)
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX

no_additional_equivocations (free_composite_vlsm IM) lst_trX m ∨ ( pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) equivocating pre_item)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_from XE is ((pre ++ [item]) ++ suf)
Hpre: finite_valid_trace_from XE is pre ∧ finite_valid_trace_from XE (finite_trace_last is pre) [item]
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([item] ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [item] ++ suf): state
descriptors: equivocator_descriptors IM
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hproper: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) equivocating item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [item] ++ suf) = Some (trX, initial_descriptors)
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [item] ++ suf)
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX

no_additional_equivocations (free_composite_vlsm IM) lst_trX m ∨ ( pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) equivocating pre_item)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_from XE is ((pre ++ [item]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hivt: finite_valid_trace_from XE (finite_trace_last is pre) [item]
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([item] ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [item] ++ suf): state
descriptors: equivocator_descriptors IM
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hproper: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) equivocating item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [item] ++ suf) = Some (trX, initial_descriptors)
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [item] ++ suf)
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX

no_additional_equivocations (free_composite_vlsm IM) lst_trX m ∨ ( pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) equivocating pre_item)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_from XE is ((pre ++ [item]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hivt: input_valid_transition XE (l item) (finite_trace_last is pre, input item) (destination item, output item)
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([item] ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [item] ++ suf): state
descriptors: equivocator_descriptors IM
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hproper: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) equivocating item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [item] ++ suf) = Some (trX, initial_descriptors)
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [item] ++ suf)
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX

no_additional_equivocations (free_composite_vlsm IM) lst_trX m ∨ ( pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) equivocating pre_item)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_from XE is ((pre ++ [item]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hivt: input_valid_transition XE (l item) (finite_trace_last is pre, input item) (destination item, output item)
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([item] ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [item] ++ suf): state
descriptors: equivocator_descriptors IM
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hproper: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) equivocating item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [item] ++ suf) = Some (trX, initial_descriptors)
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [item] ++ suf)
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
n: ¬ no_additional_equivocations Free lst_trX m

pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) equivocating pre_item
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_from XE is ((pre ++ [item]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hivt: input_valid_transition XE (l item) (finite_trace_last is pre, input item) (destination item, output item)
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([item] ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [item] ++ suf): state
descriptors: equivocator_descriptors IM
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hproper: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) equivocating item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [item] ++ suf) = Some (trX, initial_descriptors)
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [item] ++ suf)
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
n: ¬ has_been_observed Free lst_trX m

pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) equivocating pre_item
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_from XE is ((pre ++ [item]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hivt: input_valid_transition XE (l item) (finite_trace_last is pre, input item) (destination item, output item)
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([item] ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [item] ++ suf): state
descriptors: equivocator_descriptors IM
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hproper: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) equivocating item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [item] ++ suf) = Some (trX, initial_descriptors)
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [item] ++ suf)
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
n: ¬ has_been_observed Free lst_trX m

finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([item] ++ suf)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_from XE is ((pre ++ [item]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hivt: input_valid_transition XE (l item) (finite_trace_last is pre, input item) (destination item, output item)
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([item] ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [item] ++ suf): state
descriptors: equivocator_descriptors IM
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hproper: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) equivocating item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [item] ++ suf) = Some (trX, initial_descriptors)
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [item] ++ suf)
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
n: ¬ has_been_observed Free lst_trX m
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([item] ++ suf)
pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) equivocating pre_item
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_from XE is ((pre ++ [item]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hivt: input_valid_transition XE (l item) (finite_trace_last is pre, input item) (destination item, output item)
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([item] ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [item] ++ suf): state
descriptors: equivocator_descriptors IM
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hproper: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) equivocating item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [item] ++ suf) = Some (trX, initial_descriptors)
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [item] ++ suf)
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
n: ¬ has_been_observed Free lst_trX m

finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([item] ++ suf)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_from XE is ((pre ++ [item]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hivt: input_valid_transition XE (l item) (finite_trace_last is pre, input item) (destination item, output item)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [item] ++ suf): state
descriptors: equivocator_descriptors IM
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hproper: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) equivocating item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [item] ++ suf) = Some (trX, initial_descriptors)
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [item] ++ suf)
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
n: ¬ has_been_observed Free lst_trX m

finite_valid_trace_from XE (finite_trace_last is pre) ([item] ++ suf) → finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([item] ++ suf)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_from XE is ((pre ++ [item]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hivt: input_valid_transition XE (l item) (finite_trace_last is pre, input item) (destination item, output item)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [item] ++ suf): state
descriptors: equivocator_descriptors IM
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hproper: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) equivocating item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [item] ++ suf) = Some (trX, initial_descriptors)
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [item] ++ suf)
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
n: ¬ has_been_observed Free lst_trX m

VLSM_incl_part (composite_vlsm_machine (equivocator_IM IM) (equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating)) (pre_loaded_with_all_messages_vlsm_machine FreeE)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_from XE is ((pre ++ [item]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hivt: input_valid_transition XE (l item) (finite_trace_last is pre, input item) (destination item, output item)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [item] ++ suf): state
descriptors: equivocator_descriptors IM
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hproper: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) equivocating item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [item] ++ suf) = Some (trX, initial_descriptors)
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [item] ++ suf)
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
n: ¬ has_been_observed Free lst_trX m

VLSM_incl (mk_vlsm (machine FreeE)) (mk_vlsm {| transition := vtransition FreeE; valid := vvalid FreeE |})
apply vlsm_incl_pre_loaded_with_all_messages_vlsm.
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_from XE is ((pre ++ [item]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hivt: input_valid_transition XE (l item) (finite_trace_last is pre, input item) (destination item, output item)
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([item] ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [item] ++ suf): state
descriptors: equivocator_descriptors IM
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hproper: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) equivocating item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [item] ++ suf) = Some (trX, initial_descriptors)
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [item] ++ suf)
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
n: ¬ has_been_observed Free lst_trX m
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([item] ++ suf)

pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) equivocating pre_item
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_from XE is ((pre ++ [item]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hivt: input_valid_transition XE (l item) (finite_trace_last is pre, input item) (destination item, output item)
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([item] ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [item] ++ suf): state
descriptors: equivocator_descriptors IM
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hproper: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) equivocating item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [item] ++ suf) = Some (trX, initial_descriptors)
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [item] ++ suf)
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
n: ¬ has_been_observed Free lst_trX m
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([item] ++ suf)

valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_from XE is ((pre ++ [item]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hivt: input_valid_transition XE (l item) (finite_trace_last is pre, input item) (destination item, output item)
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([item] ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [item] ++ suf): state
descriptors: equivocator_descriptors IM
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hproper: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) equivocating item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [item] ++ suf) = Some (trX, initial_descriptors)
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [item] ++ suf)
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
n: ¬ has_been_observed Free lst_trX m
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([item] ++ suf)
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) equivocating pre_item
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_from XE is ((pre ++ [item]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hivt: input_valid_transition XE (l item) (finite_trace_last is pre, input item) (destination item, output item)
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([item] ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [item] ++ suf): state
descriptors: equivocator_descriptors IM
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hproper: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) equivocating item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [item] ++ suf) = Some (trX, initial_descriptors)
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [item] ++ suf)
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
n: ¬ has_been_observed Free lst_trX m
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([item] ++ suf)

valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_from XE is ((pre ++ [item]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hivt: input_valid_transition XE (l item) (finite_trace_last is pre, input item) (destination item, output item)
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([item] ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [item] ++ suf): state
descriptors: equivocator_descriptors IM
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hproper: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) equivocating item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [item] ++ suf) = Some (trX, initial_descriptors)
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [item] ++ suf)
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
n: ¬ has_been_observed Free lst_trX m
Hsuf_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last (finite_trace_last is pre) ([item] ++ suf))

valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_from XE is ((pre ++ [item]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hivt: input_valid_transition XE (l item) (finite_trace_last is pre, input item) (destination item, output item)
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([item] ++ suf)
His: initial_state_prop is
descriptors: equivocator_descriptors IM
lst_trX:= equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)): vstate (free_composite_vlsm IM)
Hproper: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [item] ++ suf))
m: message
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) equivocating item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [item] ++ suf) = Some (trX, initial_descriptors)
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [item] ++ suf)
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
n: ¬ has_been_observed Free lst_trX m
Hsuf_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last (finite_trace_last is pre) ([item] ++ suf))

valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is (pre ++ [item] ++ suf))
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_from XE is ((pre ++ [item]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hivt: input_valid_transition XE (l item) (finite_trace_last is pre, input item) (destination item, output item)
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([item] ++ suf)
His: initial_state_prop is
descriptors: equivocator_descriptors IM
lst_trX:= equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)): vstate (free_composite_vlsm IM)
Hproper: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [item] ++ suf))
m: message
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) equivocating item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [item] ++ suf) = Some (trX, initial_descriptors)
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [item] ++ suf)
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
n: ¬ has_been_observed Free lst_trX m
Hsuf_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last (finite_trace_last is pre) ([item] ++ suf))

valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last (finite_trace_last is pre) ([item] ++ suf))
assumption.
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_from XE is ((pre ++ [item]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hivt: input_valid_transition XE (l item) (finite_trace_last is pre, input item) (destination item, output item)
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([item] ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [item] ++ suf): state
descriptors: equivocator_descriptors IM
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hproper: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) equivocating item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [item] ++ suf) = Some (trX, initial_descriptors)
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [item] ++ suf)
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
n: ¬ has_been_observed Free lst_trX m
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([item] ++ suf)
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s

pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) equivocating pre_item
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
iom: option message
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := iom; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hivt: input_valid_transition XE (VLSM.l {| l := l; input := iom; destination := s0; output := oom |}) (finite_trace_last is pre, input {| l := l; input := iom; destination := s0; output := oom |}) (destination {| l := l; input := iom; destination := s0; output := oom |}, output {| l := l; input := iom; destination := s0; output := oom |})
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := iom; destination := s0; output := oom |}] ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := iom; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hproper: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: input {| l := l; input := iom; destination := s0; output := oom |} = Some m
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := iom; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := iom; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [{| l := l; input := iom; destination := s0; output := oom |}] ++ suf) = Some (trX, initial_descriptors)
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := iom; destination := s0; output := oom |}] ++ suf)
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
n: ¬ has_been_observed Free lst_trX m
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := iom; destination := s0; output := oom |}] ++ suf)
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s

pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) equivocating pre_item
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
iom: option message
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := iom; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hivt: input_valid_transition XE (VLSM.l {| l := l; input := iom; destination := s0; output := oom |}) (finite_trace_last is pre, input {| l := l; input := iom; destination := s0; output := oom |}) (destination {| l := l; input := iom; destination := s0; output := oom |}, output {| l := l; input := iom; destination := s0; output := oom |})
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := iom; destination := s0; output := oom |}] ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := iom; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hproper: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: iom = Some m
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := iom; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := iom; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [{| l := l; input := iom; destination := s0; output := oom |}] ++ suf) = Some (trX, initial_descriptors)
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := iom; destination := s0; output := oom |}] ++ suf)
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
n: ¬ has_been_observed Free lst_trX m
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := iom; destination := s0; output := oom |}] ++ suf)
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s

pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) equivocating pre_item
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hivt: input_valid_transition XE (VLSM.l {| l := l; input := Some m; destination := s0; output := oom |}) (finite_trace_last is pre, input {| l := l; input := Some m; destination := s0; output := oom |}) (destination {| l := l; input := Some m; destination := s0; output := oom |}, output {| l := l; input := Some m; destination := s0; output := oom |})
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)

pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) equivocating pre_item
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hc: composite_no_equivocations (equivocator_IM IM) (equivocator_Hbs IM Hbs) (VLSM.l {| l := l; input := Some m; destination := s0; output := oom |}) (finite_trace_last is pre, input {| l := l; input := Some m; destination := s0; output := oom |})
Hfixed: state_has_fixed_equivocation IM index_listing equivocating (composite_transition (equivocator_IM IM) (VLSM.l {| l := l; input := Some m; destination := s0; output := oom |}) (finite_trace_last is pre, input {| l := l; input := Some m; destination := s0; output := oom |})).1
Ht: transition (VLSM.l {| l := l; input := Some m; destination := s0; output := oom |}) (finite_trace_last is pre, input {| l := l; input := Some m; destination := s0; output := oom |}) = (destination {| l := l; input := Some m; destination := s0; output := oom |}, output {| l := l; input := Some m; destination := s0; output := oom |})
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)

pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) equivocating pre_item
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hc: composite_no_equivocations (equivocator_IM IM) (equivocator_Hbs IM Hbs) (VLSM.l {| l := l; input := Some m; destination := s0; output := oom |}) (finite_trace_last is pre, input {| l := l; input := Some m; destination := s0; output := oom |})
Hfixed: state_has_fixed_equivocation IM index_listing equivocating (let (i, li) := l in let (si', om') := vtransition (equivocator_IM IM i) li (finite_trace_last is pre i, Some m) in (state_update (equivocator_IM IM) (finite_trace_last is pre) i si', om')).1
Ht: (let (i, li) := l in let (si', om') := vtransition (equivocator_IM IM i) li (finite_trace_last is pre i, Some m) in (state_update (equivocator_IM IM) (finite_trace_last is pre) i si', om')) = (s0, oom)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)

pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) equivocating pre_item
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hc: composite_no_equivocations (equivocator_IM IM) (equivocator_Hbs IM Hbs) (VLSM.l {| l := l; input := Some m; destination := s0; output := oom |}) (finite_trace_last is pre, input {| l := l; input := Some m; destination := s0; output := oom |})
Hfixed: state_has_fixed_equivocation IM index_listing equivocating (s0, oom).1
Ht: (let (i, li) := l in let (si', om') := vtransition (equivocator_IM IM i) li (finite_trace_last is pre i, Some m) in (state_update (equivocator_IM IM) (finite_trace_last is pre) i si', om')) = (s0, oom)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)

pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) equivocating pre_item
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hc: composite_no_equivocations (equivocator_IM IM) (equivocator_Hbs IM Hbs) (VLSM.l {| l := l; input := Some m; destination := s0; output := oom |}) (finite_trace_last is pre, input {| l := l; input := Some m; destination := s0; output := oom |})
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
Ht: (let (i, li) := l in let (si', om') := vtransition (equivocator_IM IM i) li (finite_trace_last is pre i, Some m) in (state_update (equivocator_IM IM) (finite_trace_last is pre) i si', om')) = (s0, oom)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)

pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) equivocating pre_item
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hc: composite_no_equivocations (equivocator_IM IM) (equivocator_Hbs IM Hbs) (VLSM.l {| l := l; input := Some m; destination := s0; output := oom |}) (finite_trace_last is pre, input {| l := l; input := Some m; destination := s0; output := oom |})
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)

pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) equivocating pre_item
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hc: composite_has_been_sent (equivocator_IM IM) (equivocator_Hbs IM Hbs) (finite_trace_last is pre, input {| l := l; input := Some m; destination := s0; output := oom |}).1 m
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)

pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) equivocating pre_item
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hc: composite_has_been_sent (equivocator_IM IM) (equivocator_Hbs IM Hbs) (finite_trace_last is pre, input {| l := l; input := Some m; destination := s0; output := oom |}).1 m
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)

finite_valid_trace FreeE is pre
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hc: composite_has_been_sent (equivocator_IM IM) (equivocator_Hbs IM Hbs) (finite_trace_last is pre, input {| l := l; input := Some m; destination := s0; output := oom |}).1 m
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre_free: finite_valid_trace FreeE is pre
pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) equivocating pre_item
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hc: composite_has_been_sent (equivocator_IM IM) (equivocator_Hbs IM Hbs) (finite_trace_last is pre, input {| l := l; input := Some m; destination := s0; output := oom |}).1 m
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)

finite_valid_trace FreeE is pre
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hc: composite_has_been_sent (equivocator_IM IM) (equivocator_Hbs IM Hbs) (finite_trace_last is pre, input {| l := l; input := Some m; destination := s0; output := oom |}).1 m
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)

finite_valid_trace_from FreeE is pre
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hc: composite_has_been_sent (equivocator_IM IM) (equivocator_Hbs IM Hbs) (finite_trace_last is pre, input {| l := l; input := Some m; destination := s0; output := oom |}).1 m
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)

finite_valid_trace_from XE is pre → finite_valid_trace_from FreeE is pre
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hc: composite_has_been_sent (equivocator_IM IM) (equivocator_Hbs IM Hbs) (finite_trace_last is pre, input {| l := l; input := Some m; destination := s0; output := oom |}).1 m
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)

VLSM_incl_part (composite_vlsm_machine (equivocator_IM IM) (equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating)) (composite_vlsm_machine (equivocator_IM IM) (free_constraint (equivocator_IM IM)))
apply equivocators_fixed_equivocations_vlsm_incl_free.
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hc: composite_has_been_sent (equivocator_IM IM) (equivocator_Hbs IM Hbs) (finite_trace_last is pre, input {| l := l; input := Some m; destination := s0; output := oom |}).1 m
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre_free: finite_valid_trace FreeE is pre

pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) equivocating pre_item
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hc: composite_has_been_sent (equivocator_IM IM) (equivocator_Hbs IM Hbs) (finite_trace_last is pre, input {| l := l; input := Some m; destination := s0; output := oom |}).1 m
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre_free: finite_valid_trace FreeE is pre

valid_state_prop FreeE (finite_trace_last is pre)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hc: composite_has_been_sent (equivocator_IM IM) (equivocator_Hbs IM Hbs) (finite_trace_last is pre, input {| l := l; input := Some m; destination := s0; output := oom |}).1 m
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) equivocating pre_item
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hc: composite_has_been_sent (equivocator_IM IM) (equivocator_Hbs IM Hbs) (finite_trace_last is pre, input {| l := l; input := Some m; destination := s0; output := oom |}).1 m
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre_free: finite_valid_trace FreeE is pre

valid_state_prop FreeE (finite_trace_last is pre)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hc: composite_has_been_sent (equivocator_IM IM) (equivocator_Hbs IM Hbs) (finite_trace_last is pre, input {| l := l; input := Some m; destination := s0; output := oom |}).1 m
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre_free: finite_valid_trace FreeE is pre

finite_valid_trace_from FreeE is pre
apply Hpre_free.
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hc: composite_has_been_sent (equivocator_IM IM) (equivocator_Hbs IM Hbs) (finite_trace_last is pre, input {| l := l; input := Some m; destination := s0; output := oom |}).1 m
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)

pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) equivocating pre_item
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hc: composite_has_been_sent (equivocator_IM IM) (equivocator_Hbs IM Hbs) (finite_trace_last is pre, input {| l := l; input := Some m; destination := s0; output := oom |}).1 m
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hproper_sent: has_been_sent FreeE (finite_trace_last is pre) m → specialized_selected_message_exists_in_all_traces FreeE (field_selector output) (finite_trace_last is pre) m

pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) equivocating pre_item
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hc: specialized_selected_message_exists_in_all_traces FreeE (field_selector output) (finite_trace_last is pre) m
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hproper_sent: has_been_sent FreeE (finite_trace_last is pre) m → specialized_selected_message_exists_in_all_traces FreeE (field_selector output) (finite_trace_last is pre) m

pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) equivocating pre_item
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hc: specialized_selected_message_exists_in_all_traces FreeE (field_selector output) (finite_trace_last is pre) m
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)

pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) equivocating pre_item
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hc: trace_has_message (field_selector output) m pre
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)

pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) equivocating pre_item
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hc: x : transition_item, x ∈ pre ∧ field_selector output m x
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)

pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) equivocating pre_item
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)

pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) equivocating pre_item
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)

pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) equivocating pre_item
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)

output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) equivocating pre_item
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)

from_sub_projection (equivocator_IM IM) equivocating pre_item
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors IM), equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project IM eqv_descriptors' pre = Some (preX, initial_descriptors) ∧ trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)

from_sub_projection (equivocator_IM IM) equivocating pre_item
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)

from_sub_projection (equivocator_IM IM) equivocating pre_item
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)

proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)
from_sub_projection (equivocator_IM IM) equivocating pre_item
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)

proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)

proper_equivocator_descriptors IM final_descriptors' (finite_trace_last is pre)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
i : index, i ∉ equivocating → final_descriptors' i = Existing 0
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)

proper_equivocator_descriptors IM final_descriptors' (finite_trace_last is pre)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
Hproper: proper_equivocator_descriptors IM descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)

proper_equivocator_descriptors IM final_descriptors' (finite_trace_last is pre)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
descriptors: equivocator_descriptors IM
Hproper: proper_equivocator_descriptors IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf))
lst_trX:= equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)): vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf))
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)

proper_equivocator_descriptors IM final_descriptors' (finite_trace_last is pre)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
descriptors: equivocator_descriptors IM
Hproper: proper_equivocator_descriptors IM descriptors (finite_trace_last (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf))
lst_trX:= equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)): vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf))
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)

proper_equivocator_descriptors IM final_descriptors' (finite_trace_last is pre)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
descriptors: equivocator_descriptors IM
Hproper: proper_equivocator_descriptors IM descriptors (finite_trace_last (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf))
lst_trX:= equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)): vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf))
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
_sufX: list (composite_transition_item IM)
_final_descriptors': equivocator_descriptors IM
_Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (_sufX, _final_descriptors')
Hproper': proper_equivocator_descriptors IM _final_descriptors' (finite_trace_last is pre)

proper_equivocator_descriptors IM final_descriptors' (finite_trace_last is pre)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
descriptors: equivocator_descriptors IM
Hproper: proper_equivocator_descriptors IM descriptors (finite_trace_last (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf))
lst_trX:= equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)): vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf))
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
_sufX: list (composite_transition_item IM)
_final_descriptors': equivocator_descriptors IM
_Hsuf_project: Some (sufX, final_descriptors') = Some (_sufX, _final_descriptors')
Hproper': proper_equivocator_descriptors IM _final_descriptors' (finite_trace_last is pre)

proper_equivocator_descriptors IM final_descriptors' (finite_trace_last is pre)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
descriptors: equivocator_descriptors IM
Hproper: proper_equivocator_descriptors IM descriptors (finite_trace_last (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf))
lst_trX:= equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)): vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf))
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
_sufX: list (composite_transition_item IM)
_final_descriptors': equivocator_descriptors IM
_Hsuf_project: Some (sufX, final_descriptors') = Some (_sufX, _final_descriptors')
Hproper': proper_equivocator_descriptors IM _final_descriptors' (finite_trace_last is pre)
H0: sufX = _sufX
H1: final_descriptors' = _final_descriptors'

proper_equivocator_descriptors IM _final_descriptors' (finite_trace_last is pre)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
descriptors: equivocator_descriptors IM
Hproper: proper_equivocator_descriptors IM descriptors (finite_trace_last (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf))
lst_trX:= equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)): vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf))
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hproper': proper_equivocator_descriptors IM final_descriptors' (finite_trace_last is pre)
_Hsuf_project: Some (sufX, final_descriptors') = Some (sufX, final_descriptors')

proper_equivocator_descriptors IM final_descriptors' (finite_trace_last is pre)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
descriptors: equivocator_descriptors IM
Hproper: proper_equivocator_descriptors IM descriptors (finite_trace_last (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf))
lst_trX:= equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)): vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf))
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hproper': proper_equivocator_descriptors IM final_descriptors' (finite_trace_last is pre)

proper_equivocator_descriptors IM final_descriptors' (finite_trace_last is pre)
assumption.
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)

i : index, i ∉ equivocating → final_descriptors' i = Existing 0
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hpr: (idescriptors : equivocator_descriptors IM) (trX : list (composite_transition_item IM)), equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (trX, idescriptors) → i : index, descriptors i = Existing 0 → idescriptors i = Existing 0

i : index, i ∉ equivocating → final_descriptors' i = Existing 0
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hpr: i : index, descriptors i = Existing 0 → final_descriptors' i = Existing 0

i : index, i ∉ equivocating → final_descriptors' i = Existing 0
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hpr: i : index, descriptors i = Existing 0 → final_descriptors' i = Existing 0
i: index
Hi: i ∉ equivocating

final_descriptors' i = Existing 0
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hpr: i : index, descriptors i = Existing 0 → final_descriptors' i = Existing 0
i: index
Hi: i ∉ equivocating

descriptors i = Existing 0
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hpr: i : index, descriptors i = Existing 0 → final_descriptors' i = Existing 0
i: index
Hi: i ∉ equivocating

i ∉ equivocating
assumption.
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)

from_sub_projection (equivocator_IM IM) equivocating pre_item
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)

in_futures (pre_loaded_with_all_messages_vlsm FreeE) (destination pre_item) s0
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)
Hfutures: in_futures (pre_loaded_with_all_messages_vlsm FreeE) (destination pre_item) s0
from_sub_projection (equivocator_IM IM) equivocating pre_item
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)

in_futures (pre_loaded_with_all_messages_vlsm FreeE) (destination pre_item) s0
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
Hpre_item: l1 l2 : list transition_item, pre = l1 ++ pre_item :: l2
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)

in_futures (pre_loaded_with_all_messages_vlsm FreeE) (destination pre_item) s0
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
pre_pre, pre_suf: list transition_item
Hpre_item: pre = pre_pre ++ pre_item :: pre_suf
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)

in_futures (pre_loaded_with_all_messages_vlsm FreeE) (destination pre_item) s0
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
pre_pre, pre_suf: list transition_item
Hpre_item: pre = pre_pre ++ [pre_item] ++ pre_suf
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)

in_futures (pre_loaded_with_all_messages_vlsm FreeE) (destination pre_item) s0
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
pre_pre, pre_suf: list transition_item
Hpre_item: pre = (pre_pre ++ [pre_item]) ++ pre_suf
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)

in_futures (pre_loaded_with_all_messages_vlsm FreeE) (destination pre_item) s0
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
pre_pre, pre_suf: list transition_item
Hpre_item: pre = (pre_pre ++ [pre_item]) ++ pre_suf
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)

in_futures (pre_loaded_with_all_messages_vlsm FreeE) (destination pre_item) s0
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
pre_pre, pre_suf: list transition_item
Hpre_item: pre = (pre_pre ++ [pre_item]) ++ pre_suf
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)

in_futures (pre_loaded_with_all_messages_vlsm FreeE) (destination pre_item) s0
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
pre_pre, pre_suf: list transition_item
Hpre_item: pre = (pre_pre ++ [pre_item]) ++ pre_suf
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ∧ finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}])) suf
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)

in_futures (pre_loaded_with_all_messages_vlsm FreeE) (destination pre_item) s0
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
pre_pre, pre_suf: list transition_item
Hpre_item: pre = (pre_pre ++ [pre_item]) ++ pre_suf
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_s0: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}])
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)

in_futures (pre_loaded_with_all_messages_vlsm FreeE) (destination pre_item) s0
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
pre_item: transition_item
pre_pre, pre_suf: list transition_item
Hsuf: finite_valid_trace_from XE (finite_trace_last is ((pre_pre ++ [pre_item]) ++ pre_suf)) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre: finite_valid_trace_from XE is ((pre_pre ++ [pre_item]) ++ pre_suf)
Htr: finite_valid_trace_from XE is ((((pre_pre ++ [pre_item]) ++ pre_suf) ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
s:= finite_trace_last is (((pre_pre ++ [pre_item]) ++ pre_suf) ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hproper: proper_fixed_equivocator_descriptors descriptors s
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' ((pre_pre ++ [pre_item]) ++ pre_suf) = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (((pre_pre ++ [pre_item]) ++ pre_suf) ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is ((pre_pre ++ [pre_item]) ++ pre_suf))
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is ((pre_pre ++ [pre_item]) ++ pre_suf))
Hpre_free: finite_valid_trace FreeE is ((pre_pre ++ [pre_item]) ++ pre_suf)
Htr_s0: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is (((pre_pre ++ [pre_item]) ++ pre_suf) ++ [{| l := l; input := Some m; destination := s0; output := oom |}])
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
n: ¬ has_been_observed Free lst_trX m
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is ((pre_pre ++ [pre_item]) ++ pre_suf)) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s

in_futures (pre_loaded_with_all_messages_vlsm FreeE) (destination pre_item) s0
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocating: set index
index_listing: list index
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
is: vstate XE
l: label
s0: state
oom: option message
m: message
pre_item: transition_item
pre_pre, pre_suf: list transition_item
Htr_s0: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is (((pre_pre ++ [pre_item]) ++ pre_suf) ++ [{| l := l; input := Some m; destination := s0; output := oom |}])

in_futures (pre_loaded_with_all_messages_vlsm FreeE) (destination pre_item) s0
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocating: set index
index_listing: list index
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
is: vstate XE
l: label
s0: state
oom: option message
m: message
pre_item: transition_item
pre_pre, pre_suf: list transition_item
Htr_s0: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is ((pre_pre ++ [pre_item]) ++ pre_suf ++ [{| l := l; input := Some m; destination := s0; output := oom |}])

in_futures (pre_loaded_with_all_messages_vlsm FreeE) (destination pre_item) s0
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocating: set index
index_listing: list index
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
is: vstate XE
l: label
s0: state
oom: option message
m: message
pre_item: transition_item
pre_pre, pre_suf: list transition_item
Htr_s0: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) is (pre_pre ++ [pre_item]) ∧ finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is (pre_pre ++ [pre_item])) (pre_suf ++ [{| l := l; input := Some m; destination := s0; output := oom |}])

in_futures (pre_loaded_with_all_messages_vlsm FreeE) (destination pre_item) s0
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocating: set index
index_listing: list index
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
is: vstate XE
l: label
s0: state
oom: option message
m: message
pre_item: transition_item
pre_pre, pre_suf: list transition_item
Hfuture: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is (pre_pre ++ [pre_item])) (pre_suf ++ [{| l := l; input := Some m; destination := s0; output := oom |}])

in_futures (pre_loaded_with_all_messages_vlsm FreeE) (destination pre_item) s0
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocating: set index
index_listing: list index
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
is: vstate XE
l: label
s0: state
oom: option message
m: message
pre_item: transition_item
pre_pre, pre_suf: list transition_item
Hfuture: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (destination pre_item) (pre_suf ++ [{| l := l; input := Some m; destination := s0; output := oom |}])

in_futures (pre_loaded_with_all_messages_vlsm FreeE) (destination pre_item) s0
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocating: set index
index_listing: list index
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
is: vstate XE
l: label
s0: state
oom: option message
m: message
pre_item: transition_item
pre_pre, pre_suf: list transition_item
Hfuture: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (destination pre_item) (pre_suf ++ [{| l := l; input := Some m; destination := s0; output := oom |}])

finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm FreeE) (destination pre_item) s0 ?tr
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocating: set index
index_listing: list index
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
is: vstate XE
l: label
s0: state
oom: option message
m: message
pre_item: transition_item
pre_pre, pre_suf: list transition_item
Hfuture: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (destination pre_item) (pre_suf ++ [{| l := l; input := Some m; destination := s0; output := oom |}])

finite_trace_last (destination pre_item) (pre_suf ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) = s0
rewrite finite_trace_last_is_last;reflexivity.
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)
Hfutures: in_futures (pre_loaded_with_all_messages_vlsm FreeE) (destination pre_item) s0

from_sub_projection (equivocator_IM IM) equivocating pre_item
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)
Hfutures: state_has_fixed_equivocation IM index_listing equivocating (destination pre_item)

from_sub_projection (equivocator_IM IM) equivocating pre_item
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)
Hfutures: state_has_fixed_equivocation IM index_listing equivocating (destination pre_item)
_preX: list (composite_transition_item IM)
_initial_descriptors: equivocator_descriptors IM
_Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (_preX, _initial_descriptors)
Hpre_final_state: equivocators_state_project IM final_descriptors' (finite_trace_last is pre) = finite_trace_last (equivocators_state_project IM _initial_descriptors is) _preX

from_sub_projection (equivocator_IM IM) equivocating pre_item
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)
Hfutures: state_has_fixed_equivocation IM index_listing equivocating (destination pre_item)
_preX: list (composite_transition_item IM)
_initial_descriptors: equivocator_descriptors IM
_Htr_project: Some (preX, initial_descriptors) = Some (_preX, _initial_descriptors)
Hpre_final_state: equivocators_state_project IM final_descriptors' (finite_trace_last is pre) = finite_trace_last (equivocators_state_project IM _initial_descriptors is) _preX

from_sub_projection (equivocator_IM IM) equivocating pre_item
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)
Hfutures: state_has_fixed_equivocation IM index_listing equivocating (destination pre_item)
_preX: list (composite_transition_item IM)
_initial_descriptors: equivocator_descriptors IM
_Htr_project: Some (preX, initial_descriptors) = Some (_preX, _initial_descriptors)
Hpre_final_state: equivocators_state_project IM final_descriptors' (finite_trace_last is pre) = finite_trace_last (equivocators_state_project IM _initial_descriptors is) _preX
H0: preX = _preX
H1: initial_descriptors = _initial_descriptors

from_sub_projection (equivocator_IM IM) equivocating pre_item
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)
Hfutures: state_has_fixed_equivocation IM index_listing equivocating (destination pre_item)
_Htr_project: Some (preX, initial_descriptors) = Some (preX, initial_descriptors)
Hpre_final_state: equivocators_state_project IM final_descriptors' (finite_trace_last is pre) = finite_trace_last (equivocators_state_project IM initial_descriptors is) preX

from_sub_projection (equivocator_IM IM) equivocating pre_item
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)
Hfutures: state_has_fixed_equivocation IM index_listing equivocating (destination pre_item)
Hpre_final_state: equivocators_state_project IM final_descriptors' (finite_trace_last is pre) = finite_trace_last (equivocators_state_project IM initial_descriptors is) preX

from_sub_projection (equivocator_IM IM) equivocating pre_item
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)
Hfutures: state_has_fixed_equivocation IM index_listing equivocating (destination pre_item)
Hpre_final_state: equivocators_state_project IM final_descriptors' (finite_trace_last is pre) = finite_trace_last (equivocators_state_project IM initial_descriptors is) preX

is_Some match decide (projT1 (VLSM.l pre_item) ∈ equivocating) with | left i_in => Some (composite_label_sub_projection (equivocator_IM IM) equivocating (VLSM.l pre_item) i_in) | right _ => None end
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)
Hfutures: state_has_fixed_equivocation IM index_listing equivocating (destination pre_item)
Hpre_final_state: equivocators_state_project IM final_descriptors' (finite_trace_last is pre) = finite_trace_last (equivocators_state_project IM initial_descriptors is) preX
H: projT1 (VLSM.l pre_item) ∉ equivocating

is_Some None
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)
Hfutures: state_has_fixed_equivocation IM index_listing equivocating (destination pre_item)
Hpre_final_state: equivocators_state_project IM final_descriptors' (finite_trace_last is pre) = finite_trace_last (equivocators_state_project IM initial_descriptors is) preX
H: projT1 (VLSM.l pre_item) ∉ equivocating

has_been_observed Free lst_trX m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)
Hfutures: state_has_fixed_equivocation IM index_listing equivocating (destination pre_item)
Hpre_final_state: equivocators_state_project IM final_descriptors' (finite_trace_last is pre) = finite_trace_last (equivocators_state_project IM initial_descriptors is) preX
H: projT1 (VLSM.l pre_item) ∉ equivocating
Hobs_m: has_been_observed Free (equivocators_state_project IM final_descriptors' (finite_trace_last is pre)) m

has_been_observed Free lst_trX m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)
Hfutures: state_has_fixed_equivocation IM index_listing equivocating (destination pre_item)
Hpre_final_state: equivocators_state_project IM final_descriptors' (finite_trace_last is pre) = finite_trace_last (equivocators_state_project IM initial_descriptors is) preX
H: projT1 (VLSM.l pre_item) ∉ equivocating
Hobs_m: has_been_observed Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) preX) m

has_been_observed Free lst_trX m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)
Hfutures: state_has_fixed_equivocation IM index_listing equivocating (destination pre_item)
Hpre_final_state: equivocators_state_project IM final_descriptors' (finite_trace_last is pre) = finite_trace_last (equivocators_state_project IM initial_descriptors is) preX
H: projT1 (VLSM.l pre_item) ∉ equivocating

has_been_observed Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) preX) m → has_been_observed Free lst_trX m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)
Hfutures: state_has_fixed_equivocation IM index_listing equivocating (destination pre_item)
Hpre_final_state: equivocators_state_project IM final_descriptors' (finite_trace_last is pre) = finite_trace_last (equivocators_state_project IM initial_descriptors is) preX
H: projT1 (VLSM.l pre_item) ∉ equivocating

oracle_stepwise_props item_sends_or_receives (has_been_observed Free)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)
Hfutures: state_has_fixed_equivocation IM index_listing equivocating (destination pre_item)
Hpre_final_state: equivocators_state_project IM final_descriptors' (finite_trace_last is pre) = finite_trace_last (equivocators_state_project IM initial_descriptors is) preX
H: projT1 (VLSM.l pre_item) ∉ equivocating
in_futures (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) preX) lst_trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)
Hfutures: state_has_fixed_equivocation IM index_listing equivocating (destination pre_item)
Hpre_final_state: equivocators_state_project IM final_descriptors' (finite_trace_last is pre) = finite_trace_last (equivocators_state_project IM initial_descriptors is) preX
H: projT1 (VLSM.l pre_item) ∉ equivocating

oracle_stepwise_props item_sends_or_receives (has_been_observed Free)
apply has_been_observed_stepwise_props.
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free lst_trX m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) lst_trX
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)
Hfutures: state_has_fixed_equivocation IM index_listing equivocating (destination pre_item)
Hpre_final_state: equivocators_state_project IM final_descriptors' (finite_trace_last is pre) = finite_trace_last (equivocators_state_project IM initial_descriptors is) preX
H: projT1 (VLSM.l pre_item) ∉ equivocating

in_futures (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) preX) lst_trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free (equivocators_state_project IM descriptors s) m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM descriptors s)
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)
Hfutures: state_has_fixed_equivocation IM index_listing equivocating (destination pre_item)
Hpre_final_state: equivocators_state_project IM final_descriptors' (finite_trace_last is pre) = finite_trace_last (equivocators_state_project IM initial_descriptors is) preX
H: projT1 (VLSM.l pre_item) ∉ equivocating

in_futures (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) preX) (equivocators_state_project IM descriptors s)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf))
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf))
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free (equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [ {| l := l; input := Some m; destination := s0; output := oom |}] ++ suf))) m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [ {| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)))
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)
Hfutures: state_has_fixed_equivocation IM index_listing equivocating (destination pre_item)
Hpre_final_state: equivocators_state_project IM final_descriptors' (finite_trace_last is pre) = finite_trace_last (equivocators_state_project IM initial_descriptors is) preX
H: projT1 (VLSM.l pre_item) ∉ equivocating

in_futures (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) preX) (equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)))
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf))
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf))
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free (equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [ {| l := l; input := Some m; destination := s0; output := oom |}] ++ suf))) m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [ {| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)))
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)
Hfutures: state_has_fixed_equivocation IM index_listing equivocating (destination pre_item)
Hpre_final_state: equivocators_state_project IM final_descriptors' (finite_trace_last is pre) = finite_trace_last (equivocators_state_project IM initial_descriptors is) preX
H: projT1 (VLSM.l pre_item) ∉ equivocating

in_futures (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) preX) (equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := l; input := Some m; destination := s0; output := oom |} :: suf)))
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf))
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := l; input := Some m; destination := s0; output := oom |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf))
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free (equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [ {| l := l; input := Some m; destination := s0; output := oom |}] ++ suf))) m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [ {| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)))
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)
Hfutures: state_has_fixed_equivocation IM index_listing equivocating (destination pre_item)
Hpre_final_state: equivocators_state_project IM final_descriptors' (finite_trace_last is pre) = finite_trace_last (equivocators_state_project IM initial_descriptors is) preX
H: projT1 (VLSM.l pre_item) ∉ equivocating

in_futures (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) preX) (equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := l; input := Some m; destination := s0; output := oom |} :: suf)))
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf))
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := l; input := Some m; destination := s0; output := oom |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) trX
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf))
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free (equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [ {| l := l; input := Some m; destination := s0; output := oom |}] ++ suf))) m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [ {| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)))
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)
Hfutures: state_has_fixed_equivocation IM index_listing equivocating (destination pre_item)
Hpre_final_state: equivocators_state_project IM final_descriptors' (finite_trace_last is pre) = finite_trace_last (equivocators_state_project IM initial_descriptors is) preX
H: projT1 (VLSM.l pre_item) ∉ equivocating

in_futures (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) preX) (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf))
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) (preX ++ sufX)
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX ++ sufX)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := l; input := Some m; destination := s0; output := oom |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX ++ sufX)
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf))
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free (equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [ {| l := l; input := Some m; destination := s0; output := oom |}] ++ suf))) m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [ {| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)))
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)
Hfutures: state_has_fixed_equivocation IM index_listing equivocating (destination pre_item)
Hpre_final_state: equivocators_state_project IM final_descriptors' (finite_trace_last is pre) = finite_trace_last (equivocators_state_project IM initial_descriptors is) preX
H: projT1 (VLSM.l pre_item) ∉ equivocating

in_futures (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) preX) (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX ++ sufX))
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf))
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) (preX ++ sufX)
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX ++ sufX)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := l; input := Some m; destination := s0; output := oom |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX ++ sufX)
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf))
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free (equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [ {| l := l; input := Some m; destination := s0; output := oom |}] ++ suf))) m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [ {| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)))
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)
Hfutures: state_has_fixed_equivocation IM index_listing equivocating (destination pre_item)
Hpre_final_state: equivocators_state_project IM final_descriptors' (finite_trace_last is pre) = finite_trace_last (equivocators_state_project IM initial_descriptors is) preX
H: projT1 (VLSM.l pre_item) ∉ equivocating

in_futures (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) preX) (finite_trace_last (finite_trace_last (equivocators_state_project IM initial_descriptors is) preX) sufX)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: vstate XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label
s0: state
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM index_listing equivocating s0
His: initial_state_prop is
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf))
Hitem: from_sub_projection (equivocator_IM IM) equivocating {| l := l; input := Some m; destination := s0; output := oom |}
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) (preX ++ sufX)
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX ++ sufX)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := l; input := Some m; destination := s0; output := oom |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX ++ sufX)
Hs_free: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf))
Hsuf_free: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
n: ¬ has_been_observed Free (equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [ {| l := l; input := Some m; destination := s0; output := oom |}] ++ suf))) m
Hlst_trX: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [ {| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)))
Htr_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)
Hfutures: state_has_fixed_equivocation IM index_listing equivocating (destination pre_item)
Hpre_final_state: equivocators_state_project IM final_descriptors' (finite_trace_last is pre) = finite_trace_last (equivocators_state_project IM initial_descriptors is) preX
H: projT1 (VLSM.l pre_item) ∉ equivocating

finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) preX) (finite_trace_last (finite_trace_last (equivocators_state_project IM initial_descriptors is) preX) sufX) sufX
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocating: set index
index_listing: list index
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
Free:= free_composite_vlsm IM: VLSM message
is: vstate XE
initial_descriptors: equivocator_descriptors IM
preX, sufX: list (composite_transition_item IM)
HtrXPre: finite_valid_trace (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) (preX ++ sufX)

finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) preX) (finite_trace_last (finite_trace_last (equivocators_state_project IM initial_descriptors is) preX) sufX) sufX
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocating: set index
index_listing: list index
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
Free:= free_composite_vlsm IM: VLSM message
is: vstate XE
initial_descriptors: equivocator_descriptors IM
preX, sufX: list (composite_transition_item IM)
HtrXPre: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) (preX ++ sufX)

finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) preX) (finite_trace_last (finite_trace_last (equivocators_state_project IM initial_descriptors is) preX) sufX) sufX
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocating: set index
index_listing: list index
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
Free:= free_composite_vlsm IM: VLSM message
is: vstate XE
initial_descriptors: equivocator_descriptors IM
preX, sufX: list (composite_transition_item IM)
HtrXPre: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) preX ∧ finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (finite_trace_last (equivocators_state_project IM initial_descriptors is) preX) sufX

finite_valid_trace_from_to (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) preX) (finite_trace_last (finite_trace_last (equivocators_state_project IM initial_descriptors is) preX) sufX) sufX
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
equivocating: set index
index_listing: list index
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
Free:= free_composite_vlsm IM: VLSM message
is: vstate XE
initial_descriptors: equivocator_descriptors IM
preX, sufX: list (composite_transition_item IM)
HtrXPre: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) preX ∧ finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm IM)) (finite_trace_last (equivocators_state_project IM initial_descriptors is) preX) sufX

finite_valid_trace_from (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) preX) sufX
apply HtrXPre. Qed.
Because any of its projections to the composition of original nodes contains all transitions from nodes not allowed to equivocate, all messages sent by non-equivocating nodes in the original trace will also be sent in any projection.
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors)
item: composite_transition_item (equivocator_IM IM)
Hitem: item ∈ tr
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating

trace_has_message (field_selector output) m trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors)
item: composite_transition_item (equivocator_IM IM)
Hitem: item ∈ tr
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating

trace_has_message (field_selector output) m trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors)
item: composite_transition_item (equivocator_IM IM)
Hitem: l1 l2 : list (composite_transition_item (equivocator_IM IM)), tr = l1 ++ item :: l2
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating

trace_has_message (field_selector output) m trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Heq_tr: tr = pre ++ item :: suf
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating

trace_has_message (field_selector output) m trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Heq_tr: tr = pre ++ [item] ++ suf
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating

trace_has_message (field_selector output) m trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is (pre ++ [item] ++ suf))
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors (pre ++ [item] ++ suf) = Some (trX, initial_descriptors)
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating

trace_has_message (field_selector output) m trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is (pre ++ [item] ++ suf))
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors IM), equivocators_trace_project IM final_descriptors ([item] ++ suf) = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project IM eqv_descriptors' pre = Some (preX, initial_descriptors) ∧ trX = preX ++ sufX
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating

trace_has_message (field_selector output) m trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is (pre ++ [item] ++ suf))
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
preX, item_sufX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
Hpr_item_suf: equivocators_trace_project IM final_descriptors ([item] ++ suf) = Some (item_sufX, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Heq_trX: trX = preX ++ item_sufX
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating

trace_has_message (field_selector output) m trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is (pre ++ [item] ++ suf))
initial_descriptors: equivocator_descriptors IM
preX, item_sufX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
Hpr_item_suf: equivocators_trace_project IM final_descriptors ([item] ++ suf) = Some (item_sufX, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating

trace_has_message (field_selector output) m (preX ++ item_sufX)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is (pre ++ [item] ++ suf))
initial_descriptors: equivocator_descriptors IM
preX, item_sufX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
Hpr_item_suf: equivocators_trace_project IM final_descriptors ([item] ++ suf) = Some (item_sufX, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating

Exists (field_selector output m) preX ∨ Exists (field_selector output m) item_sufX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is (pre ++ [item] ++ suf))
initial_descriptors: equivocator_descriptors IM
preX, item_sufX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
Hpr_item_suf: equivocators_trace_project IM final_descriptors ([item] ++ suf) = Some (item_sufX, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating

Exists (field_selector output m) item_sufX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is (pre ++ [item] ++ suf))
initial_descriptors: equivocator_descriptors IM
preX, item_sufX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
Hpr_item_suf: (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors IM), equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project IM eqv_descriptors' [item] = Some (preX, eqv_pre) ∧ item_sufX = preX ++ sufX
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating

Exists (field_selector output m) item_sufX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is (pre ++ [item] ++ suf))
initial_descriptors: equivocator_descriptors IM
preX, item_sufX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hpr_item: equivocators_trace_project IM eqv_item [item] = Some (itemXs, eqv_pre)
Heq_item_sufX: item_sufX = itemXs ++ sufX
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating

Exists (field_selector output m) item_sufX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is (pre ++ [item] ++ suf))
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hpr_item: equivocators_trace_project IM eqv_item [item] = Some (itemXs, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating

Exists (field_selector output m) (itemXs ++ sufX)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is (pre ++ [item] ++ suf))
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hpr_item: equivocators_trace_project IM eqv_item [item] = Some (itemXs, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating

Exists (field_selector output m) itemXs ∨ Exists (field_selector output m) sufX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is (pre ++ [item] ++ suf))
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hpr_item: equivocators_trace_project IM eqv_item [item] = Some (itemXs, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating

Exists (field_selector output m) itemXs
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_from XE is (pre ++ [item] ++ suf)
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is (pre ++ [item] ++ suf))
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hpr_item: equivocators_trace_project IM eqv_item [item] = Some (itemXs, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating

Exists (field_selector output m) itemXs
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_from XE is ((pre ++ [item]) ++ suf)
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is (pre ++ [item] ++ suf))
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hpr_item: equivocators_trace_project IM eqv_item [item] = Some (itemXs, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating

Exists (field_selector output m) itemXs
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_from XE is (pre ++ [item]) ∧ finite_valid_trace_from XE (finite_trace_last is (pre ++ [item])) suf
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is (pre ++ [item] ++ suf))
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hpr_item: equivocators_trace_project IM eqv_item [item] = Some (itemXs, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating

Exists (field_selector output m) itemXs
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Hpre: finite_valid_trace_from XE is (pre ++ [item])
Hsuf: finite_valid_trace_from XE (finite_trace_last is (pre ++ [item])) suf
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is (pre ++ [item] ++ suf))
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hpr_item: equivocators_trace_project IM eqv_item [item] = Some (itemXs, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating

Exists (field_selector output m) itemXs
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Hpre: finite_valid_trace_from XE is pre ∧ finite_valid_trace_from XE (finite_trace_last is pre) [item]
Hsuf: finite_valid_trace_from XE (finite_trace_last is (pre ++ [item])) suf
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is (pre ++ [item] ++ suf))
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hpr_item: equivocators_trace_project IM eqv_item [item] = Some (itemXs, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating

Exists (field_selector output m) itemXs
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Hitem: finite_valid_trace_from XE (finite_trace_last is pre) [item]
Hsuf: finite_valid_trace_from XE (finite_trace_last is (pre ++ [item])) suf
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is (pre ++ [item] ++ suf))
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hpr_item: equivocators_trace_project IM eqv_item [item] = Some (itemXs, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating

Exists (field_selector output m) itemXs
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Hitem: finite_valid_trace_from XE (finite_trace_last is pre) [item]
Hsuf: finite_valid_trace_from XE (finite_trace_last is (pre ++ [item])) suf
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last (finite_trace_last is (pre ++ [item])) suf)
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hpr_item: equivocators_trace_project IM eqv_item [item] = Some (itemXs, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating

Exists (field_selector output m) itemXs
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Hitem: finite_valid_trace_from XE (finite_trace_last is pre) [item]
Hsuf: finite_valid_trace_from XE (destination item) suf
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last (destination item) suf)
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hpr_item: equivocators_trace_project IM eqv_item [item] = Some (itemXs, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating

Exists (field_selector output m) itemXs
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Hitem: finite_valid_trace_from XE (finite_trace_last is pre) [item]
Hsuf: finite_valid_trace_from XE (destination item) suf
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last (destination item) suf)
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hpr_item: equivocators_trace_project IM eqv_item [item] = Some (itemXs, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating

finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (destination item) suf
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Hitem: finite_valid_trace_from XE (finite_trace_last is pre) [item]
Hsuf: finite_valid_trace_from XE (destination item) suf
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last (destination item) suf)
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hpr_item: equivocators_trace_project IM eqv_item [item] = Some (itemXs, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating
Hsufpre: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (destination item) suf
Exists (field_selector output m) itemXs
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Hitem: finite_valid_trace_from XE (finite_trace_last is pre) [item]
Hsuf: finite_valid_trace_from XE (destination item) suf
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last (destination item) suf)
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hpr_item: equivocators_trace_project IM eqv_item [item] = Some (itemXs, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating

finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (destination item) suf
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Hitem: finite_valid_trace_from XE (finite_trace_last is pre) [item]
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last (destination item) suf)
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hpr_item: equivocators_trace_project IM eqv_item [item] = Some (itemXs, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating

finite_valid_trace_from XE (destination item) suf → finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (destination item) suf
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Hitem: finite_valid_trace_from XE (finite_trace_last is pre) [item]
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last (destination item) suf)
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hpr_item: equivocators_trace_project IM eqv_item [item] = Some (itemXs, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating

VLSM_incl_part (composite_vlsm_machine (equivocator_IM IM) (equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating)) (pre_loaded_with_all_messages_vlsm_machine FreeE)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Hitem: finite_valid_trace_from XE (finite_trace_last is pre) [item]
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last (destination item) suf)
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hpr_item: equivocators_trace_project IM eqv_item [item] = Some (itemXs, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating

VLSM_incl (mk_vlsm {| transition := composite_transition (equivocator_IM IM); valid := constrained_composite_valid (equivocator_IM IM) (equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating) |}) (mk_vlsm (machine FreeE))
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Hitem: finite_valid_trace_from XE (finite_trace_last is pre) [item]
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last (destination item) suf)
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hpr_item: equivocators_trace_project IM eqv_item [item] = Some (itemXs, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating
VLSM_incl (mk_vlsm (machine FreeE)) (mk_vlsm {| transition := vtransition FreeE; valid := vvalid FreeE |})
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Hitem: finite_valid_trace_from XE (finite_trace_last is pre) [item]
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last (destination item) suf)
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hpr_item: equivocators_trace_project IM eqv_item [item] = Some (itemXs, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating

VLSM_incl (mk_vlsm {| transition := composite_transition (equivocator_IM IM); valid := constrained_composite_valid (equivocator_IM IM) (equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating) |}) (mk_vlsm (machine FreeE))
apply equivocators_fixed_equivocations_vlsm_incl_free.
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Hitem: finite_valid_trace_from XE (finite_trace_last is pre) [item]
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last (destination item) suf)
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hpr_item: equivocators_trace_project IM eqv_item [item] = Some (itemXs, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating

VLSM_incl (mk_vlsm (machine FreeE)) (mk_vlsm {| transition := vtransition FreeE; valid := vvalid FreeE |})
apply vlsm_incl_pre_loaded_with_all_messages_vlsm.
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Hitem: finite_valid_trace_from XE (finite_trace_last is pre) [item]
Hsuf: finite_valid_trace_from XE (destination item) suf
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last (destination item) suf)
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hpr_item: equivocators_trace_project IM eqv_item [item] = Some (itemXs, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating
Hsufpre: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (destination item) suf

Exists (field_selector output m) itemXs
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Hitem: finite_valid_trace_from XE (finite_trace_last is pre) [item]
Hsuf: finite_valid_trace_from XE (destination item) suf
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last (destination item) suf)
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hpr_item: equivocators_trace_project IM eqv_item [item] = Some (itemXs, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating
Hsufpre: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (destination item) suf
Hproper_item: proper_fixed_equivocator_descriptors eqv_item (destination item)

Exists (field_selector output m) itemXs
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Hitem: finite_valid_trace_from XE (finite_trace_last is pre) [item]
Hsuf: finite_valid_trace_from XE (destination item) suf
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last (destination item) suf)
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hpr_item: equivocators_trace_project IM eqv_item [item] = Some (itemXs, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating
Hsufpre: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (destination item) suf
Hproper_item: proper_equivocator_descriptors IM eqv_item (destination item)
Hproper_fixed_item: i : index, i ∉ equivocating → eqv_item i = Existing 0

Exists (field_selector output m) itemXs
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Hitem: finite_valid_trace_from XE (finite_trace_last is pre) [item]
Hsuf: finite_valid_trace_from XE (destination item) suf
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last (destination item) suf)
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hpr_item: equivocators_trace_project IM eqv_item [item] = Some (itemXs, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating
Hsufpre: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (destination item) suf
Hproper_item: proper_equivocator_descriptors IM eqv_item (destination item)
Hproper_fixed_item: eqv_item (projT1 (l item)) = Existing 0

Exists (field_selector output m) itemXs
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Hitem: finite_valid_trace_from XE (finite_trace_last is pre) [item]
Hsuf: finite_valid_trace_from XE (destination item) suf
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last (destination item) suf)
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hpr_item: equivocators_trace_project IM eqv_item [item] = Some (itemXs, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating
Hsufpre: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (destination item) suf
Hproper_item: proper_equivocator_descriptors IM eqv_item (destination item)
Hproper_fixed_item: eqv_item (projT1 (l item)) = Existing 0
Hex: is_singleton_state (IM (projT1 (l item))) (destination item (projT1 (l item))) → s : composite_state (equivocator_IM IM), composite_valid (equivocator_IM IM) (l item) (s, input item) → composite_transition (equivocator_IM IM) (l item) (s, input item) = (destination item, output item) → Hex : existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)), let lx := existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) Hex) in equivocators_transition_item_project IM eqv_item item = Some ( Some {| l := lx; input := input item; destination := equivocators_state_project IM eqv_item (destination item); output := output item |}, eqv_item)

Exists (field_selector output m) itemXs
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Hitem: finite_valid_trace_from XE (finite_trace_last is pre) [item]
Hsuf: finite_valid_trace_from XE (destination item) suf
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last (destination item) suf)
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hpr_item: equivocators_trace_project IM eqv_item [item] = Some (itemXs, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating
Hsufpre: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (destination item) suf
Hproper_item: proper_equivocator_descriptors IM eqv_item (destination item)
Hproper_fixed_item: eqv_item (projT1 (l item)) = Existing 0
Hex: is_singleton_state (IM (projT1 (l item))) (destination item (projT1 (l item))) → s : composite_state (equivocator_IM IM), composite_valid (equivocator_IM IM) (l item) (s, input item) → composite_transition (equivocator_IM IM) (l item) (s, input item) = (destination item, output item) → Hex : existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)), let lx := existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) Hex) in equivocators_transition_item_project IM eqv_item item = Some ( Some {| l := lx; input := input item; destination := equivocators_state_project IM eqv_item (destination item); output := output item |}, eqv_item)

is_singleton_state (IM (projT1 (l item))) (destination item (projT1 (l item)))
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Hitem: finite_valid_trace_from XE (finite_trace_last is pre) [item]
Hsuf: finite_valid_trace_from XE (destination item) suf
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last (destination item) suf)
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hpr_item: equivocators_trace_project IM eqv_item [item] = Some (itemXs, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating
Hsufpre: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (destination item) suf
Hproper_item: proper_equivocator_descriptors IM eqv_item (destination item)
Hproper_fixed_item: eqv_item (projT1 (l item)) = Existing 0
Hex: s : composite_state (equivocator_IM IM), composite_valid (equivocator_IM IM) (l item) (s, input item) → composite_transition (equivocator_IM IM) (l item) (s, input item) = (destination item, output item) → Hex : existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)), let lx := existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) Hex) in equivocators_transition_item_project IM eqv_item item = Some ( Some {| l := lx; input := input item; destination := equivocators_state_project IM eqv_item (destination item); output := output item |}, eqv_item)
Exists (field_selector output m) itemXs
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Hitem: finite_valid_trace_from XE (finite_trace_last is pre) [item]
Hsuf: finite_valid_trace_from XE (destination item) suf
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last (destination item) suf)
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hpr_item: equivocators_trace_project IM eqv_item [item] = Some (itemXs, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating
Hsufpre: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (destination item) suf
Hproper_item: proper_equivocator_descriptors IM eqv_item (destination item)
Hproper_fixed_item: eqv_item (projT1 (l item)) = Existing 0
Hex: is_singleton_state (IM (projT1 (l item))) (destination item (projT1 (l item))) → s : composite_state (equivocator_IM IM), composite_valid (equivocator_IM IM) (l item) (s, input item) → composite_transition (equivocator_IM IM) (l item) (s, input item) = (destination item, output item) → Hex : existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)), let lx := existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) Hex) in equivocators_transition_item_project IM eqv_item item = Some ( Some {| l := lx; input := input item; destination := equivocators_state_project IM eqv_item (destination item); output := output item |}, eqv_item)

is_singleton_state (IM (projT1 (l item))) (destination item (projT1 (l item)))
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Hitem: finite_valid_trace_from XE (finite_trace_last is pre) [item]
Hsuf: finite_valid_trace_from XE (destination item) suf
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last (destination item) suf)
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hpr_item: equivocators_trace_project IM eqv_item [item] = Some (itemXs, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating
Hsufpre: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (destination item) suf
Hproper_item: proper_equivocator_descriptors IM eqv_item (destination item)
Hproper_fixed_item: eqv_item (projT1 (l item)) = Existing 0
Hex: is_singleton_state (IM (projT1 (l item))) (destination item (projT1 (l item))) → s : composite_state (equivocator_IM IM), composite_valid (equivocator_IM IM) (l item) (s, input item) → composite_transition (equivocator_IM IM) (l item) (s, input item) = (destination item, output item) → Hex : existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)), let lx := existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) Hex) in equivocators_transition_item_project IM eqv_item item = Some ( Some {| l := lx; input := input item; destination := equivocators_state_project IM eqv_item (destination item); output := output item |}, eqv_item)

valid_state_prop (equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating) (destination item)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Hitem: valid_state_prop XE (finite_trace_last (finite_trace_last is pre) [item])
Hsuf: finite_valid_trace_from XE (destination item) suf
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last (destination item) suf)
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hpr_item: equivocators_trace_project IM eqv_item [item] = Some (itemXs, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating
Hsufpre: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (destination item) suf
Hproper_item: proper_equivocator_descriptors IM eqv_item (destination item)
Hproper_fixed_item: eqv_item (projT1 (l item)) = Existing 0
Hex: is_singleton_state (IM (projT1 (l item))) (destination item (projT1 (l item))) → s : composite_state (equivocator_IM IM), composite_valid (equivocator_IM IM) (l item) (s, input item) → composite_transition (equivocator_IM IM) (l item) (s, input item) = (destination item, output item) → Hex : existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)), let lx := existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) Hex) in equivocators_transition_item_project IM eqv_item item = Some ( Some {| l := lx; input := input item; destination := equivocators_state_project IM eqv_item (destination item); output := output item |}, eqv_item)

valid_state_prop (equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating) (destination item)
assumption.
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Hitem: finite_valid_trace_from XE (finite_trace_last is pre) [item]
Hsuf: finite_valid_trace_from XE (destination item) suf
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last (destination item) suf)
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hpr_item: equivocators_trace_project IM eqv_item [item] = Some (itemXs, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating
Hsufpre: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (destination item) suf
Hproper_item: proper_equivocator_descriptors IM eqv_item (destination item)
Hproper_fixed_item: eqv_item (projT1 (l item)) = Existing 0
Hex: s : composite_state (equivocator_IM IM), composite_valid (equivocator_IM IM) (l item) (s, input item) → composite_transition (equivocator_IM IM) (l item) (s, input item) = (destination item, output item) → Hex : existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)), let lx := existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) Hex) in equivocators_transition_item_project IM eqv_item item = Some ( Some {| l := lx; input := input item; destination := equivocators_state_project IM eqv_item (destination item); output := output item |}, eqv_item)

Exists (field_selector output m) itemXs
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
l: label
iom: option message
s: state
oom: option message
pre, suf: list (composite_transition_item (equivocator_IM IM))
Hitem: finite_valid_trace_from XE (finite_trace_last is pre) [{| l := l; input := iom; destination := s; output := oom |}]
Hsuf: finite_valid_trace_from XE (destination {| l := l; input := iom; destination := s; output := oom |}) suf
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last (destination {| l := l; input := iom; destination := s; output := oom |}) suf)
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hpr_item: equivocators_trace_project IM eqv_item [{| l := l; input := iom; destination := s; output := oom |}] = Some (itemXs, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output {| l := l; input := iom; destination := s; output := oom |} = Some m
Hno_equiv_item: projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}) ∉ equivocating
Hsufpre: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (destination {| l := l; input := iom; destination := s; output := oom |}) suf
Hproper_item: proper_equivocator_descriptors IM eqv_item (destination {| l := l; input := iom; destination := s; output := oom |})
Hproper_fixed_item: eqv_item (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) = Existing 0
Hex: s0 : composite_state (equivocator_IM IM), composite_valid (equivocator_IM IM) (VLSM.l {| l := l; input := iom; destination := s; output := oom |}) (s0, input {| l := l; input := iom; destination := s; output := oom |}) → composite_transition (equivocator_IM IM) (VLSM.l {| l := l; input := iom; destination := s; output := oom |}) (s0, input {| l := l; input := iom; destination := s; output := oom |}) = (destination {| l := l; input := iom; destination := s; output := oom |}, output {| l := l; input := iom; destination := s; output := oom |}) → Hex : existing_equivocator_label (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})), let lx := existT (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (existing_equivocator_label_extract (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) Hex) in equivocators_transition_item_project IM eqv_item {| l := l; input := iom; destination := s; output := oom |} = Some ( Some {| l := lx; input := input {| l := l; input := iom; destination := s; output := oom |}; destination := equivocators_state_project IM eqv_item (destination {| l := l; input := iom; destination := s; output := oom |}); output := output {| l := l; input := iom; destination := s; output := oom |} |}, eqv_item)

Exists (field_selector output m) itemXs
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
l: label
iom: option message
s: state
oom: option message
pre, suf: list (composite_transition_item (equivocator_IM IM))
Hitem: input_valid_transition XE (VLSM.l {| l := l; input := iom; destination := s; output := oom |}) (finite_trace_last is pre, input {| l := l; input := iom; destination := s; output := oom |}) (destination {| l := l; input := iom; destination := s; output := oom |}, output {| l := l; input := iom; destination := s; output := oom |})
Hsuf: finite_valid_trace_from XE (destination {| l := l; input := iom; destination := s; output := oom |}) suf
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last (destination {| l := l; input := iom; destination := s; output := oom |}) suf)
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hpr_item: equivocators_trace_project IM eqv_item [{| l := l; input := iom; destination := s; output := oom |}] = Some (itemXs, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output {| l := l; input := iom; destination := s; output := oom |} = Some m
Hno_equiv_item: projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}) ∉ equivocating
Hsufpre: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (destination {| l := l; input := iom; destination := s; output := oom |}) suf
Hproper_item: proper_equivocator_descriptors IM eqv_item (destination {| l := l; input := iom; destination := s; output := oom |})
Hproper_fixed_item: eqv_item (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) = Existing 0
Hex: s0 : composite_state (equivocator_IM IM), composite_valid (equivocator_IM IM) (VLSM.l {| l := l; input := iom; destination := s; output := oom |}) (s0, input {| l := l; input := iom; destination := s; output := oom |}) → composite_transition (equivocator_IM IM) (VLSM.l {| l := l; input := iom; destination := s; output := oom |}) (s0, input {| l := l; input := iom; destination := s; output := oom |}) = (destination {| l := l; input := iom; destination := s; output := oom |}, output {| l := l; input := iom; destination := s; output := oom |}) → Hex : existing_equivocator_label (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})), let lx := existT (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (existing_equivocator_label_extract (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) Hex) in equivocators_transition_item_project IM eqv_item {| l := l; input := iom; destination := s; output := oom |} = Some ( Some {| l := lx; input := input {| l := l; input := iom; destination := s; output := oom |}; destination := equivocators_state_project IM eqv_item (destination {| l := l; input := iom; destination := s; output := oom |}); output := output {| l := l; input := iom; destination := s; output := oom |} |}, eqv_item)

Exists (field_selector output m) itemXs
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
l: label
iom: option message
s: state
oom: option message
pre, suf: list (composite_transition_item (equivocator_IM IM))
Hitem: input_valid_transition XE l (finite_trace_last is pre, iom) (s, oom)
Hsuf: finite_valid_trace_from XE (destination {| l := l; input := iom; destination := s; output := oom |}) suf
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last (destination {| l := l; input := iom; destination := s; output := oom |}) suf)
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hpr_item: equivocators_trace_project IM eqv_item [{| l := l; input := iom; destination := s; output := oom |}] = Some (itemXs, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output {| l := l; input := iom; destination := s; output := oom |} = Some m
Hno_equiv_item: projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}) ∉ equivocating
Hsufpre: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (destination {| l := l; input := iom; destination := s; output := oom |}) suf
Hproper_item: proper_equivocator_descriptors IM eqv_item (destination {| l := l; input := iom; destination := s; output := oom |})
Hproper_fixed_item: eqv_item (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) = Existing 0
Hex: s0 : composite_state (equivocator_IM IM), composite_valid (equivocator_IM IM) (VLSM.l {| l := l; input := iom; destination := s; output := oom |}) (s0, input {| l := l; input := iom; destination := s; output := oom |}) → composite_transition (equivocator_IM IM) (VLSM.l {| l := l; input := iom; destination := s; output := oom |}) (s0, input {| l := l; input := iom; destination := s; output := oom |}) = (destination {| l := l; input := iom; destination := s; output := oom |}, output {| l := l; input := iom; destination := s; output := oom |}) → Hex : existing_equivocator_label (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})), let lx := existT (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (existing_equivocator_label_extract (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) Hex) in equivocators_transition_item_project IM eqv_item {| l := l; input := iom; destination := s; output := oom |} = Some ( Some {| l := lx; input := input {| l := l; input := iom; destination := s; output := oom |}; destination := equivocators_state_project IM eqv_item (destination {| l := l; input := iom; destination := s; output := oom |}); output := output {| l := l; input := iom; destination := s; output := oom |} |}, eqv_item)

Exists (field_selector output m) itemXs
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
l: label
iom: option message
s: state
oom: option message
pre, suf: list (composite_transition_item (equivocator_IM IM))
Hs: valid_state_prop XE (finite_trace_last is pre)
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is pre, iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is pre, iom)
Ht: transition l (finite_trace_last is pre, iom) = (s, oom)
Hsuf: finite_valid_trace_from XE (destination {| l := l; input := iom; destination := s; output := oom |}) suf
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last (destination {| l := l; input := iom; destination := s; output := oom |}) suf)
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hpr_item: equivocators_trace_project IM eqv_item [{| l := l; input := iom; destination := s; output := oom |}] = Some (itemXs, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output {| l := l; input := iom; destination := s; output := oom |} = Some m
Hno_equiv_item: projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}) ∉ equivocating
Hsufpre: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (destination {| l := l; input := iom; destination := s; output := oom |}) suf
Hproper_item: proper_equivocator_descriptors IM eqv_item (destination {| l := l; input := iom; destination := s; output := oom |})
Hproper_fixed_item: eqv_item (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) = Existing 0
Hex: s0 : composite_state (equivocator_IM IM), composite_valid (equivocator_IM IM) (VLSM.l {| l := l; input := iom; destination := s; output := oom |}) (s0, input {| l := l; input := iom; destination := s; output := oom |}) → composite_transition (equivocator_IM IM) (VLSM.l {| l := l; input := iom; destination := s; output := oom |}) (s0, input {| l := l; input := iom; destination := s; output := oom |}) = (destination {| l := l; input := iom; destination := s; output := oom |}, output {| l := l; input := iom; destination := s; output := oom |}) → Hex : existing_equivocator_label (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})), let lx := existT (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (existing_equivocator_label_extract (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) Hex) in equivocators_transition_item_project IM eqv_item {| l := l; input := iom; destination := s; output := oom |} = Some ( Some {| l := lx; input := input {| l := l; input := iom; destination := s; output := oom |}; destination := equivocators_state_project IM eqv_item (destination {| l := l; input := iom; destination := s; output := oom |}); output := output {| l := l; input := iom; destination := s; output := oom |} |}, eqv_item)

Exists (field_selector output m) itemXs
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
l: label
iom: option message
s: state
oom: option message
pre, suf: list (composite_transition_item (equivocator_IM IM))
Hs: valid_state_prop XE (finite_trace_last is pre)
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is pre, iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is pre, iom)
Ht: transition l (finite_trace_last is pre, iom) = (s, oom)
Hsuf: finite_valid_trace_from XE (destination {| l := l; input := iom; destination := s; output := oom |}) suf
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last (destination {| l := l; input := iom; destination := s; output := oom |}) suf)
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hpr_item: equivocators_trace_project IM eqv_item [{| l := l; input := iom; destination := s; output := oom |}] = Some (itemXs, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output {| l := l; input := iom; destination := s; output := oom |} = Some m
Hno_equiv_item: projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}) ∉ equivocating
Hsufpre: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (destination {| l := l; input := iom; destination := s; output := oom |}) suf
Hproper_item: proper_equivocator_descriptors IM eqv_item (destination {| l := l; input := iom; destination := s; output := oom |})
Hproper_fixed_item: eqv_item (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) = Existing 0
Hex: s0 : composite_state (equivocator_IM IM), (let (i, li) := l in vvalid (equivocator_IM IM i) li (s0 i, iom)) → (let (i, li) := l in let (si', om') := vtransition (equivocator_IM IM i) li (s0 i, iom) in (state_update (equivocator_IM IM) s0 i si', om')) = (s, oom) → Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), equivocators_transition_item_project IM eqv_item {| l := l; input := iom; destination := s; output := oom |} = Some ( Some {| l := existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex); input := iom; destination := equivocators_state_project IM eqv_item s; output := oom |}, eqv_item)

Exists (field_selector output m) itemXs
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
l: label
iom: option message
s: state
oom: option message
pre, suf: list (composite_transition_item (equivocator_IM IM))
Hs: valid_state_prop XE (finite_trace_last is pre)
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is pre, iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is pre, iom)
Ht: transition l (finite_trace_last is pre, iom) = (s, oom)
Hsuf: finite_valid_trace_from XE (destination {| l := l; input := iom; destination := s; output := oom |}) suf
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last (destination {| l := l; input := iom; destination := s; output := oom |}) suf)
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hpr_item: equivocators_trace_project IM eqv_item [{| l := l; input := iom; destination := s; output := oom |}] = Some (itemXs, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output {| l := l; input := iom; destination := s; output := oom |} = Some m
Hno_equiv_item: projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}) ∉ equivocating
Hsufpre: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (destination {| l := l; input := iom; destination := s; output := oom |}) suf
Hproper_item: proper_equivocator_descriptors IM eqv_item (destination {| l := l; input := iom; destination := s; output := oom |})
Hproper_fixed_item: eqv_item (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) = Existing 0
Hex': existing_equivocator_label (IM (projT1 l)) (projT2 l)
Hex: equivocators_transition_item_project IM eqv_item {| l := l; input := iom; destination := s; output := oom |} = Some (Some {| l := existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex'); input := iom; destination := equivocators_state_project IM eqv_item s; output := oom |}, eqv_item)

Exists (field_selector output m) itemXs
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
l: label
iom: option message
s: state
oom: option message
pre, suf: list (composite_transition_item (equivocator_IM IM))
Hs: valid_state_prop XE (finite_trace_last is pre)
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is pre, iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is pre, iom)
Ht: transition l (finite_trace_last is pre, iom) = (s, oom)
Hsuf: finite_valid_trace_from XE (destination {| l := l; input := iom; destination := s; output := oom |}) suf
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last (destination {| l := l; input := iom; destination := s; output := oom |}) suf)
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hpr_item: equivocators_trace_project IM eqv_item [{| l := l; input := iom; destination := s; output := oom |}] = Some (itemXs, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output {| l := l; input := iom; destination := s; output := oom |} = Some m
Hno_equiv_item: projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}) ∉ equivocating
Hsufpre: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (destination {| l := l; input := iom; destination := s; output := oom |}) suf
Hproper_item: proper_equivocator_descriptors IM eqv_item (destination {| l := l; input := iom; destination := s; output := oom |})
Hproper_fixed_item: eqv_item (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) = Existing 0
Hex': existing_equivocator_label (IM (projT1 l)) (projT2 l)
Hex: equivocators_transition_item_project IM eqv_item {| l := l; input := iom; destination := s; output := oom |} = Some (Some {| l := existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex'); input := iom; destination := equivocators_state_project IM eqv_item s; output := oom |}, eqv_item)

Exists (field_selector output m) itemXs
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
l: label
iom: option message
s: state
oom: option message
pre, suf: list (composite_transition_item (equivocator_IM IM))
Hs: valid_state_prop XE (finite_trace_last is pre)
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is pre, iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is pre, iom)
Ht: transition l (finite_trace_last is pre, iom) = (s, oom)
Hsuf: finite_valid_trace_from XE (destination {| l := l; input := iom; destination := s; output := oom |}) suf
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last (destination {| l := l; input := iom; destination := s; output := oom |}) suf)
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hpr_item: match equivocators_transition_item_project IM eqv_item {| l := l; input := iom; destination := s; output := oom |} with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (itemXs, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output {| l := l; input := iom; destination := s; output := oom |} = Some m
Hno_equiv_item: projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}) ∉ equivocating
Hsufpre: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (destination {| l := l; input := iom; destination := s; output := oom |}) suf
Hproper_item: proper_equivocator_descriptors IM eqv_item (destination {| l := l; input := iom; destination := s; output := oom |})
Hproper_fixed_item: eqv_item (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) = Existing 0
Hex': existing_equivocator_label (IM (projT1 l)) (projT2 l)
Hex: equivocators_transition_item_project IM eqv_item {| l := l; input := iom; destination := s; output := oom |} = Some (Some {| l := existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex'); input := iom; destination := equivocators_state_project IM eqv_item s; output := oom |}, eqv_item)

Exists (field_selector output m) itemXs
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
l: label
iom: option message
s: state
oom: option message
pre, suf: list (composite_transition_item (equivocator_IM IM))
Hs: valid_state_prop XE (finite_trace_last is pre)
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is pre, iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is pre, iom)
Ht: transition l (finite_trace_last is pre, iom) = (s, oom)
Hsuf: finite_valid_trace_from XE (destination {| l := l; input := iom; destination := s; output := oom |}) suf
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last (destination {| l := l; input := iom; destination := s; output := oom |}) suf)
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hex': existing_equivocator_label (IM (projT1 l)) (projT2 l)
Hpr_item: Some ([{| l := existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex'); input := iom; destination := equivocators_state_project IM eqv_item s; output := oom |}], eqv_item) = Some (itemXs, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output {| l := l; input := iom; destination := s; output := oom |} = Some m
Hno_equiv_item: projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}) ∉ equivocating
Hsufpre: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (destination {| l := l; input := iom; destination := s; output := oom |}) suf
Hproper_item: proper_equivocator_descriptors IM eqv_item (destination {| l := l; input := iom; destination := s; output := oom |})
Hproper_fixed_item: eqv_item (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) = Existing 0
Hex: equivocators_transition_item_project IM eqv_item {| l := l; input := iom; destination := s; output := oom |} = Some (Some {| l := existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex'); input := iom; destination := equivocators_state_project IM eqv_item s; output := oom |}, eqv_item)

Exists (field_selector output m) itemXs
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
l: label
iom: option message
s: state
oom: option message
pre, suf: list (composite_transition_item (equivocator_IM IM))
Hs: valid_state_prop XE (finite_trace_last is pre)
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is pre, iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is pre, iom)
Ht: transition l (finite_trace_last is pre, iom) = (s, oom)
Hsuf: finite_valid_trace_from XE (destination {| l := l; input := iom; destination := s; output := oom |}) suf
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last (destination {| l := l; input := iom; destination := s; output := oom |}) suf)
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hex': existing_equivocator_label (IM (projT1 l)) (projT2 l)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output {| l := l; input := iom; destination := s; output := oom |} = Some m
Hno_equiv_item: projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}) ∉ equivocating
Hsufpre: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (destination {| l := l; input := iom; destination := s; output := oom |}) suf
Hproper_item: proper_equivocator_descriptors IM eqv_item (destination {| l := l; input := iom; destination := s; output := oom |})
Hproper_fixed_item: eqv_item (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) = Existing 0
Hex: equivocators_transition_item_project IM eqv_item {| l := l; input := iom; destination := s; output := oom |} = Some (Some {| l := existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex'); input := iom; destination := equivocators_state_project IM eqv_item s; output := oom |}, eqv_item)

Exists (field_selector output m) [{| l := existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex'); input := iom; destination := equivocators_state_project IM eqv_pre s; output := oom |}]
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: composite_state (equivocator_IM IM)
l: label
iom: option message
s: state
oom: option message
pre, suf: list (composite_transition_item (equivocator_IM IM))
Hs: valid_state_prop XE (finite_trace_last is pre)
Hiom: option_valid_message_prop XE iom
Hv: composite_valid (equivocator_IM IM) l (finite_trace_last is pre, iom)
Hc: equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating l (finite_trace_last is pre, iom)
Ht: transition l (finite_trace_last is pre, iom) = (s, oom)
Hsuf: finite_valid_trace_from XE (destination {| l := l; input := iom; destination := s; output := oom |}) suf
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last (destination {| l := l; input := iom; destination := s; output := oom |}) suf)
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hex': existing_equivocator_label (IM (projT1 l)) (projT2 l)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output {| l := l; input := iom; destination := s; output := oom |} = Some m
Hno_equiv_item: projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}) ∉ equivocating
Hsufpre: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) (destination {| l := l; input := iom; destination := s; output := oom |}) suf
Hproper_item: proper_equivocator_descriptors IM eqv_item (destination {| l := l; input := iom; destination := s; output := oom |})
Hproper_fixed_item: eqv_item (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) = Existing 0
Hex: equivocators_transition_item_project IM eqv_item {| l := l; input := iom; destination := s; output := oom |} = Some (Some {| l := existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex'); input := iom; destination := equivocators_state_project IM eqv_item s; output := oom |}, eqv_item)

field_selector output m {| l := existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex'); input := iom; destination := equivocators_state_project IM eqv_pre s; output := oom |}
assumption. Qed.
As a consequence of the equivocator_vlsm_trace_project_reflect_non_equivocating lemma, if a message emmited by a trace cannot be observed in a projection of the trace's final state, then it must be that it was emitted by one of the nodes allowed to equivocate.
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: _composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
s:= finite_trace_last is tr: state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
sX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
m: message
Hno: ¬ composite_has_been_observed IM Hbo sX m

item : composite_transition_item (equivocator_IM IM), item ∈ tr → output item = Some m → projT1 (l item) ∈ equivocating
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: _composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
s:= finite_trace_last is tr: state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
sX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
m: message
Hno: ¬ composite_has_been_observed IM Hbo sX m

item : composite_transition_item (equivocator_IM IM), item ∈ tr → output item = Some m → projT1 (l item) ∈ equivocating
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: _composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
s:= finite_trace_last is tr: state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
sX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
m: message
Hno: ¬ composite_has_been_observed IM Hbo sX m
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hlast_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX

item : composite_transition_item (equivocator_IM IM), item ∈ tr → output item = Some m → projT1 (l item) ∈ equivocating
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: _composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
s:= finite_trace_last is tr: state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
sX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
m: message
Hno: ¬ composite_has_been_observed IM Hbo sX m
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hlast_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
item: composite_transition_item (equivocator_IM IM)
Hitem: item ∈ tr
Houtput: output item = Some m

projT1 (l item) ∈ equivocating
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: _composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
s:= finite_trace_last is tr: state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
sX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
m: message
Hno: ¬ composite_has_been_observed IM Hbo sX m
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hlast_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
item: composite_transition_item (equivocator_IM IM)
Hitem: item ∈ tr
Houtput: output item = Some m
n: projT1 (l item) ∉ equivocating

projT1 (l item) ∈ equivocating
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: _composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
s:= finite_trace_last is tr: state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
sX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
m: message
Hno: ¬ composite_has_been_observed IM Hbo sX m
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hlast_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
item: composite_transition_item (equivocator_IM IM)
Hitem: item ∈ tr
Houtput: output item = Some m
n: projT1 (l item) ∉ equivocating

composite_has_been_observed IM Hbo sX m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: _composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
s:= finite_trace_last is tr: state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
sX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
m: message
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hlast_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
item: composite_transition_item (equivocator_IM IM)
Hitem: item ∈ tr
Houtput: output item = Some m
n: projT1 (l item) ∉ equivocating

composite_has_been_observed IM Hbo sX m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: _composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
s:= finite_trace_last is tr: state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
sX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
m: message
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hlast_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
item: composite_transition_item (equivocator_IM IM)
Hitem: item ∈ tr
Houtput: output item = Some m
n: projT1 (l item) ∉ equivocating

composite_has_been_sent IM Hbs sX m ∨ composite_has_been_received IM Hbr sX m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: _composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
s:= finite_trace_last is tr: state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
sX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
m: message
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hlast_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
item: composite_transition_item (equivocator_IM IM)
Hitem: item ∈ tr
Houtput: output item = Some m
n: projT1 (l item) ∉ equivocating

composite_has_been_sent IM Hbs sX m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: _composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
s:= finite_trace_last is tr: state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
sX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
m: message
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hlast_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
item: composite_transition_item (equivocator_IM IM)
Hitem: item ∈ tr
Houtput: output item = Some m
n: projT1 (l item) ∉ equivocating

finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: _composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
s:= finite_trace_last is tr: state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
sX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
m: message
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hlast_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
item: composite_transition_item (equivocator_IM IM)
Hitem: item ∈ tr
Houtput: output item = Some m
n: projT1 (l item) ∉ equivocating
HtrX_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) trX
composite_has_been_sent IM Hbs sX m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: _composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
s:= finite_trace_last is tr: state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
sX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
m: message
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hlast_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
item: composite_transition_item (equivocator_IM IM)
Hitem: item ∈ tr
Houtput: output item = Some m
n: projT1 (l item) ∉ equivocating

finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: _composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
s:= finite_trace_last is tr: state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
sX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
m: message
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hlast_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
item: composite_transition_item (equivocator_IM IM)
Hitem: item ∈ tr
Houtput: output item = Some m
n: projT1 (l item) ∉ equivocating

finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX → finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) trX
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Free:= free_composite_vlsm IM: VLSM message
is: _composite_state (equivocator_IM IM)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM

finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX → finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) trX
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Free:= free_composite_vlsm IM: VLSM message
is: _composite_state (equivocator_IM IM)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM

VLSM_incl_part (composite_vlsm_machine IM (free_constraint IM)) (pre_loaded_with_all_messages_vlsm_machine Free)
apply vlsm_incl_pre_loaded_with_all_messages_vlsm.
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: _composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
s:= finite_trace_last is tr: state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
sX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
m: message
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hlast_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
item: composite_transition_item (equivocator_IM IM)
Hitem: item ∈ tr
Houtput: output item = Some m
n: projT1 (l item) ∉ equivocating
HtrX_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) trX

composite_has_been_sent IM Hbs sX m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: _composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
s:= finite_trace_last is tr: state
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
sX:= equivocators_state_project IM descriptors s: vstate (free_composite_vlsm IM)
m: message
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hlast_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
item: composite_transition_item (equivocator_IM IM)
Hitem: item ∈ tr
Houtput: output item = Some m
n: projT1 (l item) ∉ equivocating
HtrX_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) trX
Hfree_lst: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)

composite_has_been_sent IM Hbs sX m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: _composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
m: message
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hlast_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
item: composite_transition_item (equivocator_IM IM)
Hitem: item ∈ tr
Houtput: output item = Some m
n: projT1 (l item) ∉ equivocating
HtrX_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) trX
Hfree_lst: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)

composite_has_been_sent IM Hbs (equivocators_state_project IM descriptors (finite_trace_last is tr)) m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: _composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
m: message
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hlast_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
item: composite_transition_item (equivocator_IM IM)
Hitem: item ∈ tr
Houtput: output item = Some m
n: projT1 (l item) ∉ equivocating
HtrX_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) trX
Hfree_lst: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)

composite_has_been_sent IM Hbs (equivocators_state_project IM descriptors (finite_trace_last is tr)) m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: _composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
m: message
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hlast_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
item: composite_transition_item (equivocator_IM IM)
Hitem: item ∈ tr
Houtput: output item = Some m
n: projT1 (l item) ∉ equivocating
HtrX_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) trX
Hfree_lst: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)

composite_has_been_sent IM Hbs (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX) m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: _composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
m: message
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hlast_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
item: composite_transition_item (equivocator_IM IM)
Hitem: item ∈ tr
Houtput: output item = Some m
n: projT1 (l item) ∉ equivocating
HtrX_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) trX
Hfree_lst: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)

selected_message_exists_in_all_preloaded_traces (free_composite_vlsm IM) (field_selector output) (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX) m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: _composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
m: message
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hlast_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
item: composite_transition_item (equivocator_IM IM)
Hitem: item ∈ tr
Houtput: output item = Some m
n: projT1 (l item) ∉ equivocating
HtrX_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) trX
Hfree_lst: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)

selected_message_exists_in_some_preloaded_traces (free_composite_vlsm IM) (field_selector output) (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX) m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: _composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
m: message
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hlast_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
item: composite_transition_item (equivocator_IM IM)
Hitem: item ∈ tr
Houtput: output item = Some m
n: projT1 (l item) ∉ equivocating
HtrX_free: finite_valid_trace (pre_loaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) trX
Hfree_lst: valid_state_prop (pre_loaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)

trace_has_message (field_selector output) m trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
is: _composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
m: message
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hlast_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
item: composite_transition_item (equivocator_IM IM)
Hitem: item ∈ tr
Houtput: output item = Some m
n: projT1 (l item) ∉ equivocating

trace_has_message (field_selector output) m trX
apply equivocator_vlsm_trace_project_reflect_non_equivocating with is tr descriptors initial_descriptors item ; assumption. Qed.
The next two lemmas are rather technical, but their basic meaning is that if we take the composition of a subset of equivocators, it doesn't matter the way we do it (either first obtain the indexed subset of nodes and then transform that into equivocators and take their composition, or we first start with the indexed full set of equivocators and then select a subset of them and take their composition).
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m

VLSM_incl (composite_no_equivocation_vlsm_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed1) (composite_no_equivocation_vlsm_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed2)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m

VLSM_incl (composite_no_equivocation_vlsm_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed1) (composite_no_equivocation_vlsm_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed2)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label
s: state
m: message
Hv: input_valid (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed1)))) seed1)) l (s, Some m)
HsY: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed2)))) seed2)) (id s)
HmX: vinitial_message_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed1)))) seed1)) m

valid_message_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed2)))) seed2)) m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label
s: state
om: option message
Hv: input_valid (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed1)))) seed1)) l (s, om)
HsY: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed2)))) seed2)) (id s)
HomY: option_valid_message_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed2)))) seed2)) om
vvalid (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed2)))) seed2)) (id l) (id s, om)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label
s: state
om: option message
s': state
om': option message
H: input_valid_transition (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed1)))) seed1)) l (s, om) (s', om')
vtransition (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed2)))) seed2)) (id l) (id s, om) = (id s', om')
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label
s: state
m: message
Hv: input_valid (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed1)))) seed1)) l (s, Some m)
HsY: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed2)))) seed2)) (id s)
HmX: vinitial_message_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed1)))) seed1)) m

valid_message_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed2)))) seed2)) m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label
s: state
m: message
Hv: input_valid (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed1)))) seed1)) l (s, Some m)
HsY: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed2)))) seed2)) (id s)
HmX: vinitial_message_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed1)))) seed1)) m

initial_message_prop m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label
s: state
m: message
Hv: input_valid (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed1)))) seed1)) l (s, Some m)
HsY: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed2)))) seed2)) (id s)
HmX: vinitial_message_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed1)))) seed1)) m

composite_initial_message_prop (equivocator_IM (sub_IM IM equivocating)) m ∨ seed2 m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label
s: state
m: message
Hv: input_valid (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed1)))) seed1)) l (s, Some m)
HsY: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed2)))) seed2)) (id s)
H: initial_message_prop m

composite_initial_message_prop (equivocator_IM (sub_IM IM equivocating)) m ∨ seed2 m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label
s: state
m: message
Hv: input_valid (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed1)))) seed1)) l (s, Some m)
HsY: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed2)))) seed2)) (id s)
H: seed1 m
composite_initial_message_prop (equivocator_IM (sub_IM IM equivocating)) m ∨ seed2 m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label
s: state
m: message
Hv: input_valid (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed1)))) seed1)) l (s, Some m)
HsY: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed2)))) seed2)) (id s)
H: initial_message_prop m

composite_initial_message_prop (equivocator_IM (sub_IM IM equivocating)) m ∨ seed2 m
left; assumption.
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label
s: state
m: message
Hv: input_valid (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed1)))) seed1)) l (s, Some m)
HsY: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed2)))) seed2)) (id s)
H: seed1 m

composite_initial_message_prop (equivocator_IM (sub_IM IM equivocating)) m ∨ seed2 m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label
s: state
m: message
Hv: input_valid (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed1)))) seed1)) l (s, Some m)
HsY: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed2)))) seed2)) (id s)
H: seed1 m

seed2 m
by apply Hseed12.
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label
s: state
om: option message
Hv: input_valid (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed1)))) seed1)) l (s, om)
HsY: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed2)))) seed2)) (id s)
HomY: option_valid_message_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed2)))) seed2)) om

vvalid (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed2)))) seed2)) (id l) (id s, om)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label
s: state
om: option message
Hs: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed1)))) seed1)) s
Hv: composite_valid (sub_IM (equivocator_IM IM) equivocating) l (s, om)
Hc: no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed1 l (s, om)
HsY: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed2)))) seed2)) (id s)
HomY: option_valid_message_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed2)))) seed2)) om

vvalid (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed2)))) seed2)) (id l) (id s, om)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label
s: state
om: option message
Hs: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed1)))) seed1)) s
Hv: composite_valid (sub_IM (equivocator_IM IM) equivocating) l (s, om)
Hc: no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed1 l (s, om)
HsY: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed2)))) seed2)) (id s)
HomY: option_valid_message_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed2)))) seed2)) om

no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed2 (id l) (id s, om)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label
s: state
om: option message
Hs: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed1)))) seed1)) s
Hv: composite_valid (sub_IM (equivocator_IM IM) equivocating) l (s, om)
Hc: composite_no_equivocations_except_from (sub_IM (equivocator_IM IM) equivocating) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed1 l (s, om)
HsY: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed2)))) seed2)) (id s)
HomY: option_valid_message_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed2)))) seed2)) om

no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed2 (id l) (id s, om)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label
s: state
om: option message
Hs: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed1)))) seed1)) s
Hv: composite_valid (sub_IM (equivocator_IM IM) equivocating) l (s, om)
Hc: composite_no_equivocations_except_from (sub_IM (equivocator_IM IM) equivocating) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed1 l (s, om)
HsY: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed2)))) seed2)) (id s)
HomY: option_valid_message_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed2)))) seed2)) om

composite_no_equivocations_except_from (equivocator_IM (sub_IM IM equivocating)) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed2 (id l) (id s, om)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label
s: state
m: message
Hs: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed1)))) seed1)) s
Hv: composite_valid (sub_IM (equivocator_IM IM) equivocating) l (s, Some m)
Hc: composite_no_equivocations_except_from (sub_IM (equivocator_IM IM) equivocating) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed1 l (s, Some m)
HsY: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed2)))) seed2)) (id s)
HomY: option_valid_message_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed2)))) seed2)) (Some m)

composite_no_equivocations_except_from (equivocator_IM (sub_IM IM equivocating)) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed2 (id l) (id s, Some m)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label
s: state
m: message
Hs: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed1)))) seed1)) s
Hv: composite_valid (sub_IM (equivocator_IM IM) equivocating) l (s, Some m)
Hc: composite_no_equivocations_except_from (sub_IM (equivocator_IM IM) equivocating) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed1 l (s, Some m)
HsY: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed2)))) seed2)) (id s)
HomY: option_valid_message_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed2)))) seed2)) (Some m)

composite_no_equivocations_except_from (equivocator_IM (sub_IM IM equivocating)) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed2 (id l) (id s, Some m)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label
s: state
m: message
Hs: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed1)))) seed1)) s
Hv: composite_valid (sub_IM (equivocator_IM IM) equivocating) l (s, Some m)
Hc: composite_no_equivocations_except_from (sub_IM (equivocator_IM IM) equivocating) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed1 l (s, Some m)
HsY: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed2)))) seed2)) (id s)
HomY: option_valid_message_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed2)))) seed2)) (Some m)

composite_no_equivocations_except_from (equivocator_IM (sub_IM IM equivocating)) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed2 l (s, Some m)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label
s: state
m: message
Hs: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed1)))) seed1)) s
Hv: composite_valid (sub_IM (equivocator_IM IM) equivocating) l (s, Some m)
Hc: composite_has_been_sent (sub_IM (equivocator_IM IM) equivocating) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) (s, Some m).1 m
HsY: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed2)))) seed2)) (id s)
HomY: option_valid_message_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed2)))) seed2)) (Some m)

composite_no_equivocations_except_from (equivocator_IM (sub_IM IM equivocating)) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed2 l (s, Some m)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label
s: state
m: message
Hs: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed1)))) seed1)) s
Hv: composite_valid (sub_IM (equivocator_IM IM) equivocating) l (s, Some m)
Hc: composite_has_been_sent (sub_IM (equivocator_IM IM) equivocating) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) (s, Some m).1 m
HsY: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed2)))) seed2)) (id s)
HomY: option_valid_message_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed2)))) seed2)) (Some m)

composite_has_been_sent (equivocator_IM (sub_IM IM equivocating)) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) (s, Some m).1 m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label
s: state
m: message
Hs: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed1)))) seed1)) s
Hv: composite_valid (sub_IM (equivocator_IM IM) equivocating) l (s, Some m)
subi: sub_index equivocating
Hibs: has_been_sent (sub_IM (equivocator_IM IM) equivocating subi) ((s, Some m).1 subi) m
HsY: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed2)))) seed2)) (id s)
HomY: option_valid_message_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed2)))) seed2)) (Some m)

composite_has_been_sent (equivocator_IM (sub_IM IM equivocating)) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) (s, Some m).1 m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label
s: state
m: message
Hs: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed1)))) seed1)) s
Hv: composite_valid (sub_IM (equivocator_IM IM) equivocating) l (s, Some m)
subi: sub_index equivocating
Hibs: has_been_sent (sub_IM (equivocator_IM IM) equivocating subi) ((s, Some m).1 subi) m
HsY: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed2)))) seed2)) (id s)
HomY: option_valid_message_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed2)))) seed2)) (Some m)

has_been_sent (equivocator_IM (sub_IM IM equivocating) subi) ((s, Some m).1 subi) m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label
s: state
m: message
Hs: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed1)))) seed1)) s
Hv: composite_valid (sub_IM (equivocator_IM IM) equivocating) l (s, Some m)
subi: sub_index equivocating
HsY: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed2)))) seed2)) (id s)
HomY: option_valid_message_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed2)))) seed2)) (Some m)

has_been_sent (sub_IM (equivocator_IM IM) equivocating subi) ((s, Some m).1 subi) m → has_been_sent (equivocator_IM (sub_IM IM equivocating) subi) ((s, Some m).1 subi) m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label
s: state
m: message
Hs: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed1)))) seed1)) s
Hv: composite_valid (sub_IM (equivocator_IM IM) equivocating) l (s, Some m)
subi: sub_index equivocating
HsY: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed2)))) seed2)) (id s)
HomY: option_valid_message_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed2)))) seed2)) (Some m)

valid_state_prop (pre_loaded_with_all_messages_vlsm (equivocator_IM (sub_IM IM equivocating) subi)) ((s, Some m).1 subi)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label
s: state
m: message
Hs: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed1)))) seed1)) s
Hv: composite_valid (sub_IM (equivocator_IM IM) equivocating) l (s, Some m)
subi: sub_index equivocating
HsY: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed2)))) seed2)) (id s)
HomY: option_valid_message_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed2)))) seed2)) (Some m)

valid_state_prop (pre_loaded_with_all_messages_vlsm (equivocator_IM (sub_IM IM equivocating) subi)) (s subi)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label
s: state
m: message
Hs: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed1)))) seed1)) s
Hv: composite_valid (sub_IM (equivocator_IM IM) equivocating) l (s, Some m)
subi: sub_index equivocating
HsY: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed2)))) seed2)) (id s)
HomY: option_valid_message_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed2)))) seed2)) (Some m)

valid_state_prop (pre_loaded_with_all_messages_vlsm (free_composite_vlsm (equivocator_IM (sub_IM IM equivocating)))) s
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label
s: state
m: message
Hv: composite_valid (sub_IM (equivocator_IM IM) equivocating) l (s, Some m)
subi: sub_index equivocating
HsY: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed2)))) seed2)) (id s)
HomY: option_valid_message_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed2)))) seed2)) (Some m)

valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed1)))) seed1)) s → valid_state_prop (pre_loaded_with_all_messages_vlsm (free_composite_vlsm (equivocator_IM (sub_IM IM equivocating)))) s
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label
s: state
m: message
Hv: composite_valid (sub_IM (equivocator_IM IM) equivocating) l (s, Some m)
subi: sub_index equivocating
HsY: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed2)))) seed2)) (id s)
HomY: option_valid_message_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed2)))) seed2)) (Some m)

VLSM_incl_part (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed1)))) seed1) (pre_loaded_with_all_messages_vlsm_machine (free_composite_vlsm (equivocator_IM (sub_IM IM equivocating))))
apply composite_pre_loaded_vlsm_incl_pre_loaded_with_all_messages.
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label
s: state
om: option message
s': state
om': option message
H: input_valid_transition (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed1)))) seed1)) l (s, om) (s', om')

vtransition (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed2)))) seed2)) (id l) (id s, om) = (id s', om')
apply H. Qed.
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m

VLSM_incl (composite_no_equivocation_vlsm_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed1) (composite_no_equivocation_vlsm_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed2)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m

VLSM_incl (composite_no_equivocation_vlsm_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed1) (composite_no_equivocation_vlsm_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed2)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label
s: state
m: message
Hv: input_valid (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed1)))) seed1)) l (s, Some m)
HsY: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed2)))) seed2)) (id s)
HmX: vinitial_message_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed1)))) seed1)) m

valid_message_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed2)))) seed2)) m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label
s: state
om: option message
Hv: input_valid (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed1)))) seed1)) l (s, om)
HsY: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed2)))) seed2)) (id s)
HomY: option_valid_message_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed2)))) seed2)) om
vvalid (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed2)))) seed2)) (id l) (id s, om)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label
s: state
om: option message
s': state
om': option message
H: input_valid_transition (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed1)))) seed1)) l (s, om) (s', om')
vtransition (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed2)))) seed2)) (id l) (id s, om) = (id s', om')
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label
s: state
m: message
Hv: input_valid (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed1)))) seed1)) l (s, Some m)
HsY: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed2)))) seed2)) (id s)
HmX: vinitial_message_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed1)))) seed1)) m

valid_message_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed2)))) seed2)) m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label
s: state
m: message
Hv: input_valid (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed1)))) seed1)) l (s, Some m)
HsY: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed2)))) seed2)) (id s)
HmX: vinitial_message_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed1)))) seed1)) m

initial_message_prop m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label
s: state
m: message
Hv: input_valid (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed1)))) seed1)) l (s, Some m)
HsY: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed2)))) seed2)) (id s)
HmX: vinitial_message_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed1)))) seed1)) m

composite_initial_message_prop (sub_IM (equivocator_IM IM) equivocating) m ∨ seed2 m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label
s: state
m: message
Hv: input_valid (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed1)))) seed1)) l (s, Some m)
HsY: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed2)))) seed2)) (id s)
H: seed1 m

composite_initial_message_prop (sub_IM (equivocator_IM IM) equivocating) m ∨ seed2 m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label
s: state
m: message
Hv: input_valid (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed1)))) seed1)) l (s, Some m)
HsY: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed2)))) seed2)) (id s)
H: seed1 m

seed2 m
apply Hseed12; assumption.
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label
s: state
om: option message
Hv: input_valid (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed1)))) seed1)) l (s, om)
HsY: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed2)))) seed2)) (id s)
HomY: option_valid_message_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed2)))) seed2)) om

vvalid (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed2)))) seed2)) (id l) (id s, om)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label
s: state
om: option message
Hs: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed1)))) seed1)) s
Hv: composite_valid (equivocator_IM (sub_IM IM equivocating)) l (s, om)
Hc: composite_no_equivocations_except_from (equivocator_IM (sub_IM IM equivocating)) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed1 l (s, om)
HsY: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed2)))) seed2)) (id s)
HomY: option_valid_message_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed2)))) seed2)) om

vvalid (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed2)))) seed2)) (id l) (id s, om)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label
s: state
om: option message
Hs: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed1)))) seed1)) s
Hv: composite_valid (equivocator_IM (sub_IM IM equivocating)) l (s, om)
Hc: composite_no_equivocations_except_from (equivocator_IM (sub_IM IM equivocating)) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed1 l (s, om)
HsY: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed2)))) seed2)) (id s)
HomY: option_valid_message_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed2)))) seed2)) om

no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed2 (id l) (id s, om)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label
s: state
om: option message
Hs: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed1)))) seed1)) s
Hv: composite_valid (equivocator_IM (sub_IM IM equivocating)) l (s, om)
Hc: composite_no_equivocations_except_from (equivocator_IM (sub_IM IM equivocating)) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed1 l (s, om)
HsY: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed2)))) seed2)) (id s)
HomY: option_valid_message_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed2)))) seed2)) om

composite_no_equivocations_except_from (sub_IM (equivocator_IM IM) equivocating) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed2 (id l) (id s, om)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label
s: state
m: message
Hs: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed1)))) seed1)) s
Hv: composite_valid (equivocator_IM (sub_IM IM equivocating)) l (s, Some m)
Hc: composite_no_equivocations_except_from (equivocator_IM (sub_IM IM equivocating)) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed1 l (s, Some m)
HsY: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed2)))) seed2)) (id s)
HomY: option_valid_message_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed2)))) seed2)) (Some m)

composite_no_equivocations_except_from (sub_IM (equivocator_IM IM) equivocating) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed2 (id l) (id s, Some m)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label
s: state
m: message
Hs: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed1)))) seed1)) s
Hv: composite_valid (equivocator_IM (sub_IM IM equivocating)) l (s, Some m)
Hc: composite_no_equivocations_except_from (equivocator_IM (sub_IM IM equivocating)) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed1 l (s, Some m)
HsY: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed2)))) seed2)) (id s)
HomY: option_valid_message_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed2)))) seed2)) (Some m)

composite_no_equivocations_except_from (sub_IM (equivocator_IM IM) equivocating) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed2 (id l) (id s, Some m)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label
s: state
m: message
Hs: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed1)))) seed1)) s
Hv: composite_valid (equivocator_IM (sub_IM IM equivocating)) l (s, Some m)
Hc: composite_no_equivocations_except_from (equivocator_IM (sub_IM IM equivocating)) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed1 l (s, Some m)
HsY: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed2)))) seed2)) (id s)
HomY: option_valid_message_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed2)))) seed2)) (Some m)

composite_no_equivocations_except_from (sub_IM (equivocator_IM IM) equivocating) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed2 l (s, Some m)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label
s: state
m: message
Hs: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed1)))) seed1)) s
Hv: composite_valid (equivocator_IM (sub_IM IM equivocating)) l (s, Some m)
Hc: composite_has_been_sent (equivocator_IM (sub_IM IM equivocating)) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) (s, Some m).1 m
HsY: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed2)))) seed2)) (id s)
HomY: option_valid_message_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed2)))) seed2)) (Some m)

composite_no_equivocations_except_from (sub_IM (equivocator_IM IM) equivocating) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed2 l (s, Some m)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label
s: state
m: message
Hs: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed1)))) seed1)) s
Hv: composite_valid (equivocator_IM (sub_IM IM equivocating)) l (s, Some m)
Hc: composite_has_been_sent (equivocator_IM (sub_IM IM equivocating)) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) (s, Some m).1 m
HsY: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed2)))) seed2)) (id s)
HomY: option_valid_message_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed2)))) seed2)) (Some m)

composite_has_been_sent (sub_IM (equivocator_IM IM) equivocating) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) (s, Some m).1 m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label
s: state
m: message
Hs: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed1)))) seed1)) s
Hv: composite_valid (equivocator_IM (sub_IM IM equivocating)) l (s, Some m)
subi: sub_index equivocating
Hibs: has_been_sent (equivocator_IM (sub_IM IM equivocating) subi) ((s, Some m).1 subi) m
HsY: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed2)))) seed2)) (id s)
HomY: option_valid_message_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed2)))) seed2)) (Some m)

composite_has_been_sent (sub_IM (equivocator_IM IM) equivocating) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) (s, Some m).1 m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label
s: state
m: message
Hs: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed1)))) seed1)) s
Hv: composite_valid (equivocator_IM (sub_IM IM equivocating)) l (s, Some m)
subi: sub_index equivocating
Hibs: has_been_sent (equivocator_IM (sub_IM IM equivocating) subi) ((s, Some m).1 subi) m
HsY: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed2)))) seed2)) (id s)
HomY: option_valid_message_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed2)))) seed2)) (Some m)

has_been_sent (sub_IM (equivocator_IM IM) equivocating subi) ((s, Some m).1 subi) m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label
s: state
m: message
Hs: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed1)))) seed1)) s
Hv: composite_valid (equivocator_IM (sub_IM IM equivocating)) l (s, Some m)
subi: sub_index equivocating
HsY: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed2)))) seed2)) (id s)
HomY: option_valid_message_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed2)))) seed2)) (Some m)

has_been_sent (equivocator_IM (sub_IM IM equivocating) subi) ((s, Some m).1 subi) m → has_been_sent (sub_IM (equivocator_IM IM) equivocating subi) ((s, Some m).1 subi) m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label
s: state
m: message
Hs: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed1)))) seed1)) s
Hv: composite_valid (equivocator_IM (sub_IM IM equivocating)) l (s, Some m)
subi: sub_index equivocating
HsY: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed2)))) seed2)) (id s)
HomY: option_valid_message_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed2)))) seed2)) (Some m)

valid_state_prop (pre_loaded_with_all_messages_vlsm (sub_IM (equivocator_IM IM) equivocating subi)) ((s, Some m).1 subi)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label
s: state
m: message
Hs: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed1)))) seed1)) s
Hv: composite_valid (equivocator_IM (sub_IM IM equivocating)) l (s, Some m)
subi: sub_index equivocating
HsY: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed2)))) seed2)) (id s)
HomY: option_valid_message_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed2)))) seed2)) (Some m)

valid_state_prop (pre_loaded_with_all_messages_vlsm (sub_IM (equivocator_IM IM) equivocating subi)) (s subi)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label
s: state
m: message
Hs: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed1)))) seed1)) s
Hv: composite_valid (equivocator_IM (sub_IM IM equivocating)) l (s, Some m)
subi: sub_index equivocating
HsY: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed2)))) seed2)) (id s)
HomY: option_valid_message_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed2)))) seed2)) (Some m)

valid_state_prop (pre_loaded_with_all_messages_vlsm (free_composite_vlsm (equivocator_IM (sub_IM IM equivocating)))) s
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label
s: state
m: message
Hv: composite_valid (equivocator_IM (sub_IM IM equivocating)) l (s, Some m)
subi: sub_index equivocating
HsY: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed2)))) seed2)) (id s)
HomY: option_valid_message_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed2)))) seed2)) (Some m)

valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed1)))) seed1)) s → valid_state_prop (pre_loaded_with_all_messages_vlsm (free_composite_vlsm (equivocator_IM (sub_IM IM equivocating)))) s
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label
s: state
m: message
Hv: composite_valid (equivocator_IM (sub_IM IM equivocating)) l (s, Some m)
subi: sub_index equivocating
HsY: valid_state_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed2)))) seed2)) (id s)
HomY: option_valid_message_prop (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed2)))) seed2)) (Some m)

VLSM_incl_part (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed1)))) seed1) (pre_loaded_with_all_messages_vlsm_machine (free_composite_vlsm (equivocator_IM (sub_IM IM equivocating))))
apply composite_pre_loaded_vlsm_incl_pre_loaded_with_all_messages.
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label
s: state
om: option message
s': state
om': option message
H: input_valid_transition (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (equivocator_IM (sub_IM IM equivocating)) (no_equivocations_additional_constraint_with_pre_loaded (equivocator_IM (sub_IM IM equivocating)) (free_constraint (equivocator_IM (sub_IM IM equivocating))) (equivocator_Hbs (sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed1)))) seed1)) l (s, om) (s', om')

vtransition (mk_vlsm (VLSMClass_pre_loaded_with_messages (projT2 (projT2 (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) (no_equivocations_additional_constraint_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) seed2)))) seed2)) (id l) (id s, om) = (id s', om')
apply H. Qed.
The intermediary results above allow us to prove that the fixed_equivocation_constraint has the constraint_has_been_sent_property.
The core of this result is proving that given a valid_state s of the composition of equivocators with no message equivocation and fixed state equivocation, a message which has_been_sent for that state but not has_been_observed for a projection of that state sx, can nevertheless be generated by the composition of the nodes allowed to equivocate, pre-loaded with the messages observed in the state sx.
To prove that, we consider a trace witness for the mesage having been sent, we use projection_has_not_been_observed_is_equivocating to derive that it must have been sent by one of the machines allowed to equivocate, from this we derive that it can be sent by the restriction of the composition of equivocators to just the equivocating nodes, pre-loaded with the messages observed in the projection, then we use the seeded_equivocators_valid_trace_project result to reach our conclusion.
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message

constraint_has_been_sent_prop (fixed_equivocation_constraint IM Hbs Hbr equivocating)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message

constraint_has_been_sent_prop (fixed_equivocation_constraint IM Hbs Hbr equivocating)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message

s : composite_state (equivocator_IM IM), valid_state_prop XE s → descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors descriptors s → m : message, has_been_sent FreeE s m → l : composite_label IM, fixed_equivocation_constraint IM Hbs Hbr equivocating l (equivocators_state_project IM descriptors s, Some m)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
Hs: valid_state_prop XE s
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: has_been_sent FreeE s m
l: composite_label IM

fixed_equivocation_constraint IM Hbs Hbr equivocating l (equivocators_state_project IM descriptors s, Some m)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
Hs: valid_state_prop XE s
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: has_been_sent FreeE s m
l: composite_label IM
sX: vstate (free_composite_vlsm IM)
HeqsX: sX = equivocators_state_project IM descriptors s

fixed_equivocation_constraint IM Hbs Hbr equivocating l (sX, Some m)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
Hs: valid_state_prop XE s
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: has_been_sent FreeE s m
l: composite_label IM
sX: vstate (free_composite_vlsm IM)
HeqsX: sX = equivocators_state_project IM descriptors s
n: ¬ composite_has_been_observed IM Hbo sX m

can_emit (equivocators_composition_for_observed IM Hbs Hbr equivocating sX) m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
Hs: valid_state_prop XE s
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: has_been_sent FreeE s m
sX: vstate (free_composite_vlsm IM)
HeqsX: sX = equivocators_state_project IM descriptors s
n: ¬ composite_has_been_observed IM Hbo sX m

can_emit (equivocators_composition_for_observed IM Hbs Hbr equivocating sX) m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
Hs: valid_state_prop XE s
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: has_been_sent FreeE s m
sX: vstate (free_composite_vlsm IM)
HeqsX: sX = equivocators_state_project IM descriptors s
n: ¬ composite_has_been_observed IM Hbo sX m

can_emit (equivocators_composition_for_observed IM Hbs Hbr equivocating sX) m
(* Phase I: exhibiting a [valid_trace] ending in tr s and sending m *)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
Hs: (is : state) (tr : list transition_item), finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: has_been_sent FreeE s m
sX: vstate (free_composite_vlsm IM)
HeqsX: sX = equivocators_state_project IM descriptors s
n: ¬ composite_has_been_observed IM Hbo sX m

can_emit (equivocators_composition_for_observed IM Hbs Hbr equivocating sX) m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: has_been_sent FreeE s m
sX: vstate (free_composite_vlsm IM)
HeqsX: sX = equivocators_state_project IM descriptors s
n: ¬ composite_has_been_observed IM Hbo sX m

can_emit (equivocators_composition_for_observed IM Hbs Hbr equivocating sX) m
(* subst s *)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: has_been_sent FreeE s m
sX: vstate (free_composite_vlsm IM)
HeqsX: sX = equivocators_state_project IM descriptors s
n: ¬ composite_has_been_observed IM Hbo sX m

finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm FreeE) is s tr
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: has_been_sent FreeE s m
sX: vstate (free_composite_vlsm IM)
HeqsX: sX = equivocators_state_project IM descriptors s
n: ¬ composite_has_been_observed IM Hbo sX m
Htr'pre: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm FreeE) is s tr
can_emit (equivocators_composition_for_observed IM Hbs Hbr equivocating sX) m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: has_been_sent FreeE s m
sX: vstate (free_composite_vlsm IM)
HeqsX: sX = equivocators_state_project IM descriptors s
n: ¬ composite_has_been_observed IM Hbo sX m

finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm FreeE) is s tr
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: has_been_sent FreeE s m
sX: vstate (free_composite_vlsm IM)
HeqsX: sX = equivocators_state_project IM descriptors s
n: ¬ composite_has_been_observed IM Hbo sX m

finite_valid_trace_init_to XE is s tr → finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm FreeE) is s tr
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: has_been_sent FreeE s m
sX: vstate (free_composite_vlsm IM)
HeqsX: sX = equivocators_state_project IM descriptors s
n: ¬ composite_has_been_observed IM Hbo sX m

VLSM_incl_part (composite_vlsm_machine (equivocator_IM IM) (equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating)) (pre_loaded_with_all_messages_vlsm_machine FreeE)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: has_been_sent FreeE s m
sX: vstate (free_composite_vlsm IM)
HeqsX: sX = equivocators_state_project IM descriptors s
n: ¬ composite_has_been_observed IM Hbo sX m

VLSM_incl (mk_vlsm {| transition := composite_transition (equivocator_IM IM); valid := constrained_composite_valid (equivocator_IM IM) (equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating) |}) (mk_vlsm (machine FreeE))
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: has_been_sent FreeE s m
sX: vstate (free_composite_vlsm IM)
HeqsX: sX = equivocators_state_project IM descriptors s
n: ¬ composite_has_been_observed IM Hbo sX m
VLSM_incl (mk_vlsm (machine FreeE)) (mk_vlsm {| transition := vtransition FreeE; valid := vvalid FreeE |})
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: has_been_sent FreeE s m
sX: vstate (free_composite_vlsm IM)
HeqsX: sX = equivocators_state_project IM descriptors s
n: ¬ composite_has_been_observed IM Hbo sX m

VLSM_incl (mk_vlsm {| transition := composite_transition (equivocator_IM IM); valid := constrained_composite_valid (equivocator_IM IM) (equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating) |}) (mk_vlsm (machine FreeE))
apply (constraint_free_incl (equivocator_IM IM) (equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating)).
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: has_been_sent FreeE s m
sX: vstate (free_composite_vlsm IM)
HeqsX: sX = equivocators_state_project IM descriptors s
n: ¬ composite_has_been_observed IM Hbo sX m

VLSM_incl (mk_vlsm (machine FreeE)) (mk_vlsm {| transition := vtransition FreeE; valid := vvalid FreeE |})
apply vlsm_incl_pre_loaded_with_all_messages_vlsm.
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: has_been_sent FreeE s m
sX: vstate (free_composite_vlsm IM)
HeqsX: sX = equivocators_state_project IM descriptors s
n: ¬ composite_has_been_observed IM Hbo sX m
Htr'pre: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm FreeE) is s tr

can_emit (equivocators_composition_for_observed IM Hbs Hbr equivocating sX) m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: has_been_sent FreeE s m
sX: vstate (free_composite_vlsm IM)
HeqsX: sX = equivocators_state_project IM descriptors s
n: ¬ composite_has_been_observed IM Hbo sX m
Htr'pre: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm FreeE) is s tr

valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: has_been_sent FreeE s m
sX: vstate (free_composite_vlsm IM)
HeqsX: sX = equivocators_state_project IM descriptors s
n: ¬ composite_has_been_observed IM Hbo sX m
Htr'pre: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm FreeE) is s tr
Hplst: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
can_emit (equivocators_composition_for_observed IM Hbs Hbr equivocating sX) m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: has_been_sent FreeE s m
sX: vstate (free_composite_vlsm IM)
HeqsX: sX = equivocators_state_project IM descriptors s
n: ¬ composite_has_been_observed IM Hbo sX m
Htr'pre: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm FreeE) is s tr

valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s
apply valid_trace_last_pstate in Htr'pre; assumption.
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: has_been_sent FreeE s m
sX: vstate (free_composite_vlsm IM)
HeqsX: sX = equivocators_state_project IM descriptors s
n: ¬ composite_has_been_observed IM Hbo sX m
Htr'pre: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm FreeE) is s tr
Hplst: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s

can_emit (equivocators_composition_for_observed IM Hbs Hbr equivocating sX) m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: selected_message_exists_in_all_preloaded_traces FreeE (field_selector output) s m
sX: vstate (free_composite_vlsm IM)
HeqsX: sX = equivocators_state_project IM descriptors s
n: ¬ composite_has_been_observed IM Hbo sX m
Htr'pre: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm FreeE) is s tr
Hplst: valid_state_prop (pre_loaded_with_all_messages_vlsm FreeE) s

can_emit (equivocators_composition_for_observed IM Hbs Hbr equivocating sX) m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: selected_message_exists_in_all_preloaded_traces FreeE (field_selector output) s m
sX: vstate (free_composite_vlsm IM)
HeqsX: sX = equivocators_state_project IM descriptors s
n: ¬ composite_has_been_observed IM Hbo sX m
Htr'pre: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm FreeE) is s tr

can_emit (equivocators_composition_for_observed IM Hbs Hbr equivocating sX) m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: trace_has_message (field_selector output) m tr
sX: vstate (free_composite_vlsm IM)
HeqsX: sX = equivocators_state_project IM descriptors s
n: ¬ composite_has_been_observed IM Hbo sX m
Htr'pre: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm FreeE) is s tr

can_emit (equivocators_composition_for_observed IM Hbs Hbr equivocating sX) m
(* Phase II (a): The restriction of tr to the equivocators allowed to state-equivocate is valid for the corresponding composition pre-loaded with the messages observed in the projection sX of s. *)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: trace_has_message (field_selector output) m tr
sX: vstate (free_composite_vlsm IM)
HeqsX: sX = equivocators_state_project IM descriptors s
n: ¬ composite_has_been_observed IM Hbo sX m
Htr'pre: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm FreeE) is s tr
Hproject: (s : composite_state (equivocator_IM IM)) (tr : list (composite_transition_item (equivocator_IM IM))), trace_sub_item_input_is_seeded_or_sub_previously_sent (equivocator_IM IM) equivocating (no_additional_equivocations (free_composite_vlsm IM) sX) tr → finite_valid_trace (composite_vlsm (equivocator_IM IM) (equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating)) s tr → finite_valid_trace (composite_no_equivocation_vlsm_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) (no_additional_equivocations (free_composite_vlsm IM) sX)) (composite_state_sub_projection (equivocator_IM IM) equivocating s) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr)

can_emit (equivocators_composition_for_observed IM Hbs Hbr equivocating sX) m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: trace_has_message (field_selector output) m tr
sX: vstate (free_composite_vlsm IM)
HeqsX: sX = equivocators_state_project IM descriptors s
n: ¬ composite_has_been_observed IM Hbo sX m
Htr'pre: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm FreeE) is s tr
Hproject: trace_sub_item_input_is_seeded_or_sub_previously_sent (equivocator_IM IM) equivocating (no_additional_equivocations (free_composite_vlsm IM) sX) tr → finite_valid_trace (composite_vlsm (equivocator_IM IM) (equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating)) is tr → finite_valid_trace (composite_no_equivocation_vlsm_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) (no_additional_equivocations (free_composite_vlsm IM) sX)) (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr)

can_emit (equivocators_composition_for_observed IM Hbs Hbr equivocating sX) m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: trace_has_message (field_selector output) m tr
sX: vstate (free_composite_vlsm IM)
HeqsX: sX = equivocators_state_project IM descriptors s
n: ¬ composite_has_been_observed IM Hbo sX m
Htr'pre: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm FreeE) is s tr
Hproject: trace_sub_item_input_is_seeded_or_sub_previously_sent (equivocator_IM IM) equivocating (no_additional_equivocations (free_composite_vlsm IM) sX) tr → finite_valid_trace (composite_vlsm (equivocator_IM IM) (equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating)) is tr → finite_valid_trace (composite_no_equivocation_vlsm_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) (no_additional_equivocations (free_composite_vlsm IM) sX)) (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr)

trace_sub_item_input_is_seeded_or_sub_previously_sent (equivocator_IM IM) equivocating (no_additional_equivocations (free_composite_vlsm IM) sX) tr
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: trace_has_message (field_selector output) m tr
sX: vstate (free_composite_vlsm IM)
HeqsX: sX = equivocators_state_project IM descriptors s
n: ¬ composite_has_been_observed IM Hbo sX m
Htr'pre: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_vlsm (equivocator_IM IM) (equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating)) is tr → finite_valid_trace (composite_no_equivocation_vlsm_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) (no_additional_equivocations (free_composite_vlsm IM) sX)) (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr)
can_emit (equivocators_composition_for_observed IM Hbs Hbr equivocating sX) m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: trace_has_message (field_selector output) m tr
sX: vstate (free_composite_vlsm IM)
HeqsX: sX = equivocators_state_project IM descriptors s
n: ¬ composite_has_been_observed IM Hbo sX m
Htr'pre: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm FreeE) is s tr
Hproject: trace_sub_item_input_is_seeded_or_sub_previously_sent (equivocator_IM IM) equivocating (no_additional_equivocations (free_composite_vlsm IM) sX) tr → finite_valid_trace (composite_vlsm (equivocator_IM IM) (equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating)) is tr → finite_valid_trace (composite_no_equivocation_vlsm_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) (no_additional_equivocations (free_composite_vlsm IM) sX)) (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr)

trace_sub_item_input_is_seeded_or_sub_previously_sent (equivocator_IM IM) equivocating (no_additional_equivocations (free_composite_vlsm IM) sX) tr
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: trace_has_message (field_selector output) m tr
n: ¬ composite_has_been_observed IM Hbo (equivocators_state_project IM descriptors s) m
Htr'pre: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm FreeE) is s tr
Hproject: trace_sub_item_input_is_seeded_or_sub_previously_sent (equivocator_IM IM) equivocating (no_additional_equivocations (free_composite_vlsm IM) (equivocators_state_project IM descriptors s)) tr → finite_valid_trace (composite_vlsm (equivocator_IM IM) (equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating)) is tr → finite_valid_trace (composite_no_equivocation_vlsm_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) (no_additional_equivocations (free_composite_vlsm IM) (equivocators_state_project IM descriptors s))) (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr)

trace_sub_item_input_is_seeded_or_sub_previously_sent (equivocator_IM IM) equivocating (no_additional_equivocations (free_composite_vlsm IM) (equivocators_state_project IM descriptors s)) tr
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
m: message
Hm: trace_has_message (field_selector output) m tr
n: ¬ composite_has_been_observed IM Hbo (equivocators_state_project IM descriptors s) m
Htr'pre: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm FreeE) is s tr
Hproject: trace_sub_item_input_is_seeded_or_sub_previously_sent (equivocator_IM IM) equivocating (no_additional_equivocations (free_composite_vlsm IM) (equivocators_state_project IM descriptors s)) tr → finite_valid_trace (composite_vlsm (equivocator_IM IM) (equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating)) is tr → finite_valid_trace (composite_no_equivocation_vlsm_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) (no_additional_equivocations (free_composite_vlsm IM) (equivocators_state_project IM descriptors s))) (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr)

trace_sub_item_input_is_seeded_or_sub_previously_sent (equivocator_IM IM) equivocating (no_additional_equivocations (free_composite_vlsm IM) (equivocators_state_project IM descriptors (finite_trace_last is tr))) tr
apply (equivocators_trace_sub_item_input_is_seeded_or_sub_previously_sent _ _ (valid_trace_forget_last Htr) descriptors Hdescriptors ).
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: trace_has_message (field_selector output) m tr
sX: vstate (free_composite_vlsm IM)
HeqsX: sX = equivocators_state_project IM descriptors s
n: ¬ composite_has_been_observed IM Hbo sX m
Htr'pre: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_vlsm (equivocator_IM IM) (equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating)) is tr → finite_valid_trace (composite_no_equivocation_vlsm_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) (no_additional_equivocations (free_composite_vlsm IM) sX)) (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr)

can_emit (equivocators_composition_for_observed IM Hbs Hbr equivocating sX) m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: trace_has_message (field_selector output) m tr
sX: vstate (free_composite_vlsm IM)
HeqsX: sX = equivocators_state_project IM descriptors s
n: ¬ composite_has_been_observed IM Hbo sX m
Htr'pre: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) (no_additional_equivocations (free_composite_vlsm IM) sX)) (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr)

can_emit (equivocators_composition_for_observed IM Hbs Hbr equivocating sX) m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: trace_has_message (field_selector output) m tr
sX: vstate (free_composite_vlsm IM)
HeqsX: sX = equivocators_state_project IM descriptors s
n: ¬ composite_has_been_observed IM Hbo (equivocators_state_project IM descriptors s) m
Htr'pre: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) (no_additional_equivocations (free_composite_vlsm IM) sX)) (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr)

can_emit (equivocators_composition_for_observed IM Hbs Hbr equivocating sX) m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: trace_has_message (field_selector output) m tr
sX: vstate (free_composite_vlsm IM)
n: ¬ composite_has_been_observed IM Hbo (equivocators_state_project IM descriptors s) m
Htr'pre: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) (no_additional_equivocations (free_composite_vlsm IM) sX)) (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr)

can_emit (equivocators_composition_for_observed IM Hbs Hbr equivocating sX) m
(* Phase III (a): Obtain a projection trXm of tr outputing m using a final_descriptor_m *)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: (final_descriptors initial_descriptors : equivocator_descriptors IM) (trX : list (composite_transition_item IM)), not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last is tr) ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ Exists (field_selector output m) trX
sX: vstate (free_composite_vlsm IM)
n: ¬ composite_has_been_observed IM Hbo (equivocators_state_project IM descriptors s) m
Htr'pre: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) (no_additional_equivocations (free_composite_vlsm IM) sX)) (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr)

can_emit (equivocators_composition_for_observed IM Hbs Hbr equivocating sX) m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector output m) trXm
sX: vstate (free_composite_vlsm IM)
n: ¬ composite_has_been_observed IM Hbo (equivocators_state_project IM descriptors s) m
Htr'pre: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) (no_additional_equivocations (free_composite_vlsm IM) sX)) (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr)

can_emit (equivocators_composition_for_observed IM Hbs Hbr equivocating sX) m
(* Identify the item outputing m in trXm an its corresponding item in tr. *)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
Hex: x : transition_item, x ∈ trXm ∧ field_selector output m x
sX: vstate (free_composite_vlsm IM)
n: ¬ composite_has_been_observed IM Hbo (equivocators_state_project IM descriptors s) m
Htr'pre: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) (no_additional_equivocations (free_composite_vlsm IM) sX)) (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr)

can_emit (equivocators_composition_for_observed IM Hbs Hbr equivocating sX) m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
output_itemX: transition_item
Hin: output_itemX ∈ trXm
Houtput_select: field_selector output m output_itemX
sX: vstate (free_composite_vlsm IM)
n: ¬ composite_has_been_observed IM Hbo (equivocators_state_project IM descriptors s) m
Htr'pre: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) (no_additional_equivocations (free_composite_vlsm IM) sX)) (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr)

can_emit (equivocators_composition_for_observed IM Hbs Hbr equivocating sX) m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
output_itemX: transition_item
Hin: l1 l2 : list transition_item, trXm = l1 ++ output_itemX :: l2
Houtput_select: field_selector output m output_itemX
sX: vstate (free_composite_vlsm IM)
n: ¬ composite_has_been_observed IM Hbo (equivocators_state_project IM descriptors s) m
Htr'pre: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) (no_additional_equivocations (free_composite_vlsm IM) sX)) (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr)

can_emit (equivocators_composition_for_observed IM Hbs Hbr equivocating sX) m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
output_itemX: transition_item
preX, sufX: list transition_item
Heq_trXm: trXm = preX ++ output_itemX :: sufX
Houtput_select: field_selector output m output_itemX
sX: vstate (free_composite_vlsm IM)
n: ¬ composite_has_been_observed IM Hbo (equivocators_state_project IM descriptors s) m
Htr'pre: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) (no_additional_equivocations (free_composite_vlsm IM) sX)) (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr)

can_emit (equivocators_composition_for_observed IM Hbs Hbr equivocating sX) m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
output_itemX: transition_item
preX, sufX: list transition_item
Heq_trXm: trXm = preX ++ [output_itemX] ++ sufX
Houtput_select: field_selector output m output_itemX
sX: vstate (free_composite_vlsm IM)
n: ¬ composite_has_been_observed IM Hbo (equivocators_state_project IM descriptors s) m
Htr'pre: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) (no_additional_equivocations (free_composite_vlsm IM) sX)) (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr)

can_emit (equivocators_composition_for_observed IM Hbs Hbr equivocating sX) m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
output_itemX: transition_item
preX, sufX: list transition_item
Heq_trXm: trXm = preX ++ [output_itemX] ++ sufX
Houtput_select: field_selector output m output_itemX
sX: vstate (free_composite_vlsm IM)
n: ¬ composite_has_been_observed IM Hbo (equivocators_state_project IM descriptors s) m
Htr'pre: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) (no_additional_equivocations (free_composite_vlsm IM) sX)) (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr)
Hpr_item: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)

can_emit (equivocators_composition_for_observed IM Hbs Hbr equivocating sX) m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
output_itemX: transition_item
preX, sufX: list transition_item
Heq_trXm: trXm = preX ++ [output_itemX] ++ sufX
Houtput_select: field_selector output m output_itemX
sX: vstate (free_composite_vlsm IM)
n: ¬ composite_has_been_observed IM Hbo (equivocators_state_project IM descriptors s) m
Htr'pre: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) (no_additional_equivocations (free_composite_vlsm IM) sX)) (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr)
Hpr_item: equivocators_trace_project IM final_descriptors_m tr = Some (preX ++ [output_itemX] ++ sufX, initial_descriptors_m)

can_emit (equivocators_composition_for_observed IM Hbs Hbr equivocating sX) m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
output_itemX: transition_item
preX, sufX: list transition_item
Heq_trXm: trXm = preX ++ [output_itemX] ++ sufX
Houtput_select: field_selector output m output_itemX
sX: vstate (free_composite_vlsm IM)
n: ¬ composite_has_been_observed IM Hbo (equivocators_state_project IM descriptors s) m
Htr'pre: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) (no_additional_equivocations (free_composite_vlsm IM) sX)) (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr)
Hpr_item: (pre suf : list (composite_transition_item (equivocator_IM IM))) (item : composite_transition_item (equivocator_IM IM)) (item_descriptors pre_descriptors : equivocator_descriptors IM), equivocators_trace_project IM final_descriptors_m suf = Some (sufX, item_descriptors) ∧ equivocators_transition_item_project IM item_descriptors item = Some (Some output_itemX, pre_descriptors) ∧ equivocators_trace_project IM pre_descriptors pre = Some (preX, initial_descriptors_m) ∧ tr = pre ++ [item] ++ suf

can_emit (equivocators_composition_for_observed IM Hbs Hbr equivocating sX) m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
output_itemX: transition_item
preX, sufX: list transition_item
Heq_trXm: trXm = preX ++ [output_itemX] ++ sufX
Houtput_select: field_selector output m output_itemX
sX: vstate (free_composite_vlsm IM)
n: ¬ composite_has_been_observed IM Hbo (equivocators_state_project IM descriptors s) m
Htr'pre: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) (no_additional_equivocations (free_composite_vlsm IM) sX)) (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr)
pre, suf: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
item_descriptors, pre_descriptors: equivocator_descriptors IM
Hpr_item: equivocators_transition_item_project IM item_descriptors item = Some (Some output_itemX, pre_descriptors)
Heqtr: tr = pre ++ [item] ++ suf

can_emit (equivocators_composition_for_observed IM Hbs Hbr equivocating sX) m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
output_itemX: transition_item
preX, sufX: list transition_item
Heq_trXm: trXm = preX ++ [output_itemX] ++ sufX
Houtput_select: field_selector output m output_itemX
sX: vstate (free_composite_vlsm IM)
n: ¬ composite_has_been_observed IM Hbo (equivocators_state_project IM descriptors s) m
Htr'pre: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) (no_additional_equivocations (free_composite_vlsm IM) sX)) (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr)
pre, suf: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
item_descriptors, pre_descriptors: equivocator_descriptors IM
Hpr_item: match equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection (equivocator_IM IM) item) (item_descriptors (projT1 (l item))) with | Some (Some item', deqv') => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}, equivocator_descriptors_update IM item_descriptors (projT1 (l item)) deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update IM item_descriptors (projT1 (l item)) deqv') | None => None end = Some (Some output_itemX, pre_descriptors)
Heqtr: tr = pre ++ [item] ++ suf

can_emit (equivocators_composition_for_observed IM Hbs Hbr equivocating sX) m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
output_itemX: transition_item
preX, sufX: list transition_item
Heq_trXm: trXm = preX ++ [output_itemX] ++ sufX
Houtput_select: field_selector output m output_itemX
sX: vstate (free_composite_vlsm IM)
n: ¬ composite_has_been_observed IM Hbo (equivocators_state_project IM descriptors s) m
Htr'pre: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) (no_additional_equivocations (free_composite_vlsm IM) sX)) (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr)
pre, suf: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
item_descriptors, pre_descriptors: equivocator_descriptors IM
o: option (vtransition_item (IM (projT1 (l item))))
deqv': MachineDescriptor (IM (projT1 (l item)))
Hpr_item: match o with | Some item' => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}, equivocator_descriptors_update IM item_descriptors (projT1 (l item)) deqv') | None => Some (None, equivocator_descriptors_update IM item_descriptors (projT1 (l item)) deqv') end = Some (Some output_itemX, pre_descriptors)
Heqtr: tr = pre ++ [item] ++ suf

can_emit (equivocators_composition_for_observed IM Hbs Hbr equivocating sX) m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
output_itemX: transition_item
preX, sufX: list transition_item
Heq_trXm: trXm = preX ++ [output_itemX] ++ sufX
Houtput_select: field_selector output m output_itemX
sX: vstate (free_composite_vlsm IM)
n: ¬ composite_has_been_observed IM Hbo (equivocators_state_project IM descriptors s) m
Htr'pre: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) (no_additional_equivocations (free_composite_vlsm IM) sX)) (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr)
pre, suf: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
item_descriptors, pre_descriptors: equivocator_descriptors IM
item': vtransition_item (IM (projT1 (l item)))
deqv': MachineDescriptor (IM (projT1 (l item)))
Hpr_item: Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}, equivocator_descriptors_update IM item_descriptors (projT1 (l item)) deqv') = Some (Some output_itemX, pre_descriptors)
Heqtr: tr = pre ++ [item] ++ suf

can_emit (equivocators_composition_for_observed IM Hbs Hbr equivocating sX) m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
output_itemX: transition_item
preX, sufX: list transition_item
Heq_trXm: trXm = preX ++ [output_itemX] ++ sufX
Houtput_select: field_selector output m output_itemX
sX: vstate (free_composite_vlsm IM)
n: ¬ composite_has_been_observed IM Hbo (equivocators_state_project IM descriptors s) m
Htr'pre: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) (no_additional_equivocations (free_composite_vlsm IM) sX)) (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr)
pre, suf: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
item_descriptors, pre_descriptors: equivocator_descriptors IM
item': vtransition_item (IM (projT1 (l item)))
deqv': MachineDescriptor (IM (projT1 (l item)))
Hpr_item: Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}, equivocator_descriptors_update IM item_descriptors (projT1 (l item)) deqv') = Some (Some output_itemX, pre_descriptors)
Heqtr: tr = pre ++ [item] ++ suf
H0: {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |} = output_itemX
H1: equivocator_descriptors_update IM item_descriptors (projT1 (l item)) deqv' = pre_descriptors

can_emit (equivocators_composition_for_observed IM Hbs Hbr equivocating sX) m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
preX, sufX: list transition_item
item: composite_transition_item (equivocator_IM IM)
item_descriptors: equivocator_descriptors IM
item': vtransition_item (IM (projT1 (l item)))
Houtput_select: field_selector output m {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}
Heq_trXm: trXm = preX ++ [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ sufX
sX: vstate (free_composite_vlsm IM)
n: ¬ composite_has_been_observed IM Hbo (equivocators_state_project IM descriptors s) m
Htr'pre: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) (no_additional_equivocations (free_composite_vlsm IM) sX)) (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr)
pre, suf: list (composite_transition_item (equivocator_IM IM))
deqv': MachineDescriptor (IM (projT1 (l item)))
Hpr_item: Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}, equivocator_descriptors_update IM item_descriptors (projT1 (l item)) deqv') = Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}, equivocator_descriptors_update IM item_descriptors (projT1 (l item)) deqv')
Heqtr: tr = pre ++ [item] ++ suf

can_emit (equivocators_composition_for_observed IM Hbs Hbr equivocating sX) m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
preX, sufX: list transition_item
item: composite_transition_item (equivocator_IM IM)
item_descriptors: equivocator_descriptors IM
item': vtransition_item (IM (projT1 (l item)))
Houtput_select: field_selector output m {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}
Heq_trXm: trXm = preX ++ [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ sufX
sX: vstate (free_composite_vlsm IM)
n: ¬ composite_has_been_observed IM Hbo (equivocators_state_project IM descriptors s) m
Htr'pre: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) (no_additional_equivocations (free_composite_vlsm IM) sX)) (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Heqtr: tr = pre ++ [item] ++ suf

can_emit (equivocators_composition_for_observed IM Hbs Hbr equivocating sX) m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
preX, sufX: list transition_item
item: composite_transition_item (equivocator_IM IM)
item_descriptors: equivocator_descriptors IM
item': vtransition_item (IM (projT1 (l item)))
Houtput_select: output item = Some m
Heq_trXm: trXm = preX ++ [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ sufX
sX: vstate (free_composite_vlsm IM)
n: ¬ composite_has_been_observed IM Hbo (equivocators_state_project IM descriptors s) m
Htr'pre: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) (no_additional_equivocations (free_composite_vlsm IM) sX)) (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Heqtr: tr = pre ++ [item] ++ suf

can_emit (equivocators_composition_for_observed IM Hbs Hbr equivocating sX) m
(* show that that item must be specifying a transition for an equivocating node*)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
preX, sufX: list transition_item
item: composite_transition_item (equivocator_IM IM)
item_descriptors: equivocator_descriptors IM
item': vtransition_item (IM (projT1 (l item)))
Houtput_select: output item = Some m
Heq_trXm: trXm = preX ++ [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ sufX
sX: vstate (free_composite_vlsm IM)
n: ¬ composite_has_been_observed IM Hbo (equivocators_state_project IM descriptors (finite_trace_last is tr)) m
Htr'pre: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) (no_additional_equivocations (free_composite_vlsm IM) sX)) (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Heqtr: tr = pre ++ [item] ++ suf

can_emit (equivocators_composition_for_observed IM Hbs Hbr equivocating sX) m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
preX, sufX: list transition_item
item: composite_transition_item (equivocator_IM IM)
item_descriptors: equivocator_descriptors IM
item': vtransition_item (IM (projT1 (l item)))
Houtput_select: output item = Some m
Heq_trXm: trXm = preX ++ [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ sufX
sX: vstate (free_composite_vlsm IM)
n: ¬ composite_has_been_observed IM Hbo (equivocators_state_project IM descriptors (finite_trace_last is tr)) m
Htr'pre: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) (no_additional_equivocations (free_composite_vlsm IM) sX)) (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Heqtr: tr = pre ++ [item] ++ suf
Hitem_equivocating: item ∈ tr → output item = Some m → projT1 (l item) ∈ equivocating

can_emit (equivocators_composition_for_observed IM Hbs Hbr equivocating sX) m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
preX, sufX: list transition_item
item: composite_transition_item (equivocator_IM IM)
item_descriptors: equivocator_descriptors IM
item': vtransition_item (IM (projT1 (l item)))
Houtput_select: output item = Some m
Heq_trXm: trXm = preX ++ [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ sufX
sX: vstate (free_composite_vlsm IM)
Htr'pre: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) (no_additional_equivocations (free_composite_vlsm IM) sX)) (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Heqtr: tr = pre ++ [item] ++ suf
Hitem_equivocating: item ∈ tr → output item = Some m → projT1 (l item) ∈ equivocating

can_emit (equivocators_composition_for_observed IM Hbs Hbr equivocating sX) m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
preX, sufX: list transition_item
item: composite_transition_item (equivocator_IM IM)
item_descriptors: equivocator_descriptors IM
item': vtransition_item (IM (projT1 (l item)))
Houtput_select: output item = Some m
Heq_trXm: trXm = preX ++ [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ sufX
sX: vstate (free_composite_vlsm IM)
Htr'pre: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) (no_additional_equivocations (free_composite_vlsm IM) sX)) (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Heqtr: tr = pre ++ [item] ++ suf
Hitem_equivocating: item ∈ tr → output item = Some m → projT1 (l item) ∈ equivocating

item ∈ tr
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
preX, sufX: list transition_item
item: composite_transition_item (equivocator_IM IM)
item_descriptors: equivocator_descriptors IM
item': vtransition_item (IM (projT1 (l item)))
Houtput_select: output item = Some m
Heq_trXm: trXm = preX ++ [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ sufX
sX: vstate (free_composite_vlsm IM)
Htr'pre: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) (no_additional_equivocations (free_composite_vlsm IM) sX)) (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Heqtr: tr = pre ++ [item] ++ suf
Hitem_equivocating: output item = Some m → projT1 (l item) ∈ equivocating
can_emit (equivocators_composition_for_observed IM Hbs Hbr equivocating sX) m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
preX, sufX: list transition_item
item: composite_transition_item (equivocator_IM IM)
item_descriptors: equivocator_descriptors IM
item': vtransition_item (IM (projT1 (l item)))
Houtput_select: output item = Some m
Heq_trXm: trXm = preX ++ [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ sufX
sX: vstate (free_composite_vlsm IM)
Htr'pre: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) (no_additional_equivocations (free_composite_vlsm IM) sX)) (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Heqtr: tr = pre ++ [item] ++ suf
Hitem_equivocating: item ∈ tr → output item = Some m → projT1 (l item) ∈ equivocating

item ∈ tr
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_init_to XE is s (pre ++ [item] ++ suf)
descriptors: equivocator_descriptors IM
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is (pre ++ [item] ++ suf))
preX, sufX: list transition_item
item_descriptors: equivocator_descriptors IM
item': vtransition_item (IM (projT1 (l item)))
Hproject_trXm: equivocators_trace_project IM final_descriptors_m (pre ++ [item] ++ suf) = Some (preX ++ [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ sufX, initial_descriptors_m)
Houtput_select: output item = Some m
sX: vstate (free_composite_vlsm IM)
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) (no_additional_equivocations (free_composite_vlsm IM) sX)) (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating (pre ++ [item] ++ suf))
Htr'pre: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm FreeE) is s (pre ++ [item] ++ suf)
Hitem_equivocating: item ∈ pre ++ [item] ++ suf → output item = Some m → projT1 (l item) ∈ equivocating

item ∈ pre ++ [item] ++ suf
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_init_to XE is s (pre ++ [item] ++ suf)
descriptors: equivocator_descriptors IM
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is (pre ++ [item] ++ suf))
preX, sufX: list transition_item
item_descriptors: equivocator_descriptors IM
item': vtransition_item (IM (projT1 (l item)))
Hproject_trXm: equivocators_trace_project IM final_descriptors_m (pre ++ [item] ++ suf) = Some (preX ++ [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ sufX, initial_descriptors_m)
Houtput_select: output item = Some m
sX: vstate (free_composite_vlsm IM)
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) (no_additional_equivocations (free_composite_vlsm IM) sX)) (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating (pre ++ [item] ++ suf))
Htr'pre: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm FreeE) is s (pre ++ [item] ++ suf)
Hitem_equivocating: item ∈ pre ++ [item] ++ suf → output item = Some m → projT1 (l item) ∈ equivocating

item ∈ pre ∨ item ∈ [item] ∨ item ∈ suf
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_init_to XE is s (pre ++ [item] ++ suf)
descriptors: equivocator_descriptors IM
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is (pre ++ [item] ++ suf))
preX, sufX: list transition_item
item_descriptors: equivocator_descriptors IM
item': vtransition_item (IM (projT1 (l item)))
Hproject_trXm: equivocators_trace_project IM final_descriptors_m (pre ++ [item] ++ suf) = Some (preX ++ [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ sufX, initial_descriptors_m)
Houtput_select: output item = Some m
sX: vstate (free_composite_vlsm IM)
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) (no_additional_equivocations (free_composite_vlsm IM) sX)) (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating (pre ++ [item] ++ suf))
Htr'pre: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm FreeE) is s (pre ++ [item] ++ suf)
Hitem_equivocating: item ∈ pre ++ [item] ++ suf → output item = Some m → projT1 (l item) ∈ equivocating

item ∈ [item] ∨ item ∈ suf
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_init_to XE is s (pre ++ [item] ++ suf)
descriptors: equivocator_descriptors IM
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is (pre ++ [item] ++ suf))
preX, sufX: list transition_item
item_descriptors: equivocator_descriptors IM
item': vtransition_item (IM (projT1 (l item)))
Hproject_trXm: equivocators_trace_project IM final_descriptors_m (pre ++ [item] ++ suf) = Some (preX ++ [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ sufX, initial_descriptors_m)
Houtput_select: output item = Some m
sX: vstate (free_composite_vlsm IM)
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) (no_additional_equivocations (free_composite_vlsm IM) sX)) (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating (pre ++ [item] ++ suf))
Htr'pre: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm FreeE) is s (pre ++ [item] ++ suf)
Hitem_equivocating: item ∈ pre ++ [item] ++ suf → output item = Some m → projT1 (l item) ∈ equivocating

item ∈ [item]
left.
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
preX, sufX: list transition_item
item: composite_transition_item (equivocator_IM IM)
item_descriptors: equivocator_descriptors IM
item': vtransition_item (IM (projT1 (l item)))
Houtput_select: output item = Some m
Heq_trXm: trXm = preX ++ [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ sufX
sX: vstate (free_composite_vlsm IM)
Htr'pre: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) (no_additional_equivocations (free_composite_vlsm IM) sX)) (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Heqtr: tr = pre ++ [item] ++ suf
Hitem_equivocating: output item = Some m → projT1 (l item) ∈ equivocating

can_emit (equivocators_composition_for_observed IM Hbs Hbr equivocating sX) m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
preX, sufX: list transition_item
item: composite_transition_item (equivocator_IM IM)
item_descriptors: equivocator_descriptors IM
item': vtransition_item (IM (projT1 (l item)))
Houtput_select: output item = Some m
Heq_trXm: trXm = preX ++ [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ sufX
sX: vstate (free_composite_vlsm IM)
Htr'pre: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) (no_additional_equivocations (free_composite_vlsm IM) sX)) (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Heqtr: tr = pre ++ [item] ++ suf
Hitem_equivocating: projT1 (l item) ∈ equivocating

can_emit (equivocators_composition_for_observed IM Hbs Hbr equivocating sX) m
(* Phase III (b): Consider a projection trX' obtained using the final_descriptor_m as above, but first restricting the nodes to just the equivocators allowed to equivocate. We will show that we can use [seeded_equivocators_valid_trace_project] and leverage the result from Phase II (a) to derive that the resulting projection is valid. *)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
preX, sufX: list transition_item
item: composite_transition_item (equivocator_IM IM)
item_descriptors: equivocator_descriptors IM
item': vtransition_item (IM (projT1 (l item)))
Houtput_select: output item = Some m
Heq_trXm: trXm = preX ++ [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ sufX
sX: vstate (free_composite_vlsm IM)
Htr'pre: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) (no_additional_equivocations (free_composite_vlsm IM) sX)) (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Heqtr: tr = pre ++ [item] ++ suf
Hitem_equivocating: projT1 (l item) ∈ equivocating
Hsub_project: proper_equivocator_descriptors (sub_IM IM equivocating) (λ i : sub_index equivocating, final_descriptors_m (`i)) (finite_trace_last (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr)) → (trX : list (composite_transition_item (sub_IM IM equivocating))) (initial_descriptors : equivocator_descriptors (sub_IM IM equivocating)), let isX := equivocators_state_project (sub_IM IM equivocating) initial_descriptors (composite_state_sub_projection (equivocator_IM IM) equivocating is) in let final_stateX := finite_trace_last isX trX in proper_equivocator_descriptors (sub_IM IM equivocating) initial_descriptors (composite_state_sub_projection (equivocator_IM IM) equivocating is) ∧ equivocators_trace_project (sub_IM IM equivocating) (λ i : sub_index equivocating, final_descriptors_m (`i)) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr) = Some (trX, initial_descriptors) ∧ equivocators_state_project (sub_IM IM equivocating) (λ i : sub_index equivocating, final_descriptors_m (`i)) (finite_trace_last (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr)) = final_stateX ∧ finite_valid_trace (pre_loaded_vlsm (free_composite_vlsm (sub_IM IM equivocating)) (λ m : message, no_additional_equivocations (free_composite_vlsm IM) sX m)) isX trX

can_emit (equivocators_composition_for_observed IM Hbs Hbr equivocating sX) m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
preX, sufX: list transition_item
item: composite_transition_item (equivocator_IM IM)
item_descriptors: equivocator_descriptors IM
item': vtransition_item (IM (projT1 (l item)))
Houtput_select: output item = Some m
Heq_trXm: trXm = preX ++ [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ sufX
sX: vstate (free_composite_vlsm IM)
Htr'pre: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) (no_additional_equivocations (free_composite_vlsm IM) sX)) (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Heqtr: tr = pre ++ [item] ++ suf
Hitem_equivocating: projT1 (l item) ∈ equivocating
Hsub_project: proper_equivocator_descriptors (sub_IM IM equivocating) (λ i : sub_index equivocating, final_descriptors_m (`i)) (finite_trace_last (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr)) → (trX : list (composite_transition_item (sub_IM IM equivocating))) (initial_descriptors : equivocator_descriptors (sub_IM IM equivocating)), proper_equivocator_descriptors (sub_IM IM equivocating) initial_descriptors (composite_state_sub_projection (equivocator_IM IM) equivocating is) ∧ equivocators_trace_project (sub_IM IM equivocating) (λ i : sub_index equivocating, final_descriptors_m (`i)) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr) = Some (trX, initial_descriptors) ∧ equivocators_state_project (sub_IM IM equivocating) (λ i : sub_index equivocating, final_descriptors_m (`i)) (finite_trace_last (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr)) = finite_trace_last (equivocators_state_project (sub_IM IM equivocating) initial_descriptors (composite_state_sub_projection (equivocator_IM IM) equivocating is)) trX ∧ finite_valid_trace (pre_loaded_vlsm (free_composite_vlsm (sub_IM IM equivocating)) (λ m : message, composite_has_been_observed IM Hbo sX m)) (equivocators_state_project (sub_IM IM equivocating) initial_descriptors (composite_state_sub_projection (equivocator_IM IM) equivocating is)) trX

can_emit (equivocators_composition_for_observed IM Hbs Hbr equivocating sX) m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
preX, sufX: list transition_item
item: composite_transition_item (equivocator_IM IM)
item_descriptors: equivocator_descriptors IM
item': vtransition_item (IM (projT1 (l item)))
Houtput_select: output item = Some m
Heq_trXm: trXm = preX ++ [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ sufX
sX: vstate (free_composite_vlsm IM)
Htr'pre: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) (no_additional_equivocations (free_composite_vlsm IM) sX)) (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Heqtr: tr = pre ++ [item] ++ suf
Hitem_equivocating: projT1 (l item) ∈ equivocating
Hsub_project: proper_equivocator_descriptors (sub_IM IM equivocating) (λ i : sub_index equivocating, final_descriptors_m (`i)) (finite_trace_last (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr)) → (trX : list (composite_transition_item (sub_IM IM equivocating))) (initial_descriptors : equivocator_descriptors (sub_IM IM equivocating)), proper_equivocator_descriptors (sub_IM IM equivocating) initial_descriptors (composite_state_sub_projection (equivocator_IM IM) equivocating is) ∧ equivocators_trace_project (sub_IM IM equivocating) (λ i : sub_index equivocating, final_descriptors_m (`i)) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr) = Some (trX, initial_descriptors) ∧ equivocators_state_project (sub_IM IM equivocating) (λ i : sub_index equivocating, final_descriptors_m (`i)) (finite_trace_last (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr)) = finite_trace_last (equivocators_state_project (sub_IM IM equivocating) initial_descriptors (composite_state_sub_projection (equivocator_IM IM) equivocating is)) trX ∧ finite_valid_trace (pre_loaded_vlsm (free_composite_vlsm (sub_IM IM equivocating)) (λ m : message, composite_has_been_observed IM Hbo sX m)) (equivocators_state_project (sub_IM IM equivocating) initial_descriptors (composite_state_sub_projection (equivocator_IM IM) equivocating is)) trX

proper_equivocator_descriptors (sub_IM IM equivocating) (λ i : sub_index equivocating, final_descriptors_m (`i)) (finite_trace_last (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr))
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
preX, sufX: list transition_item
item: composite_transition_item (equivocator_IM IM)
item_descriptors: equivocator_descriptors IM
item': vtransition_item (IM (projT1 (l item)))
Houtput_select: output item = Some m
Heq_trXm: trXm = preX ++ [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ sufX
sX: vstate (free_composite_vlsm IM)
Htr'pre: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) (no_additional_equivocations (free_composite_vlsm IM) sX)) (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Heqtr: tr = pre ++ [item] ++ suf
Hitem_equivocating: projT1 (l item) ∈ equivocating
Hsub_project: (trX : list (composite_transition_item (sub_IM IM equivocating))) (initial_descriptors : equivocator_descriptors (sub_IM IM equivocating)), proper_equivocator_descriptors (sub_IM IM equivocating) initial_descriptors (composite_state_sub_projection (equivocator_IM IM) equivocating is) ∧ equivocators_trace_project (sub_IM IM equivocating) (λ i : sub_index equivocating, final_descriptors_m (`i)) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr) = Some (trX, initial_descriptors) ∧ equivocators_state_project (sub_IM IM equivocating) (λ i : sub_index equivocating, final_descriptors_m (`i)) (finite_trace_last (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr)) = finite_trace_last (equivocators_state_project (sub_IM IM equivocating) initial_descriptors (composite_state_sub_projection (equivocator_IM IM) equivocating is)) trX ∧ finite_valid_trace (pre_loaded_vlsm (free_composite_vlsm (sub_IM IM equivocating)) (λ m : message, composite_has_been_observed IM Hbo sX m)) (equivocators_state_project (sub_IM IM equivocating) initial_descriptors (composite_state_sub_projection (equivocator_IM IM) equivocating is)) trX
can_emit (equivocators_composition_for_observed IM Hbs Hbr equivocating sX) m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
preX, sufX: list transition_item
item: composite_transition_item (equivocator_IM IM)
item_descriptors: equivocator_descriptors IM
item': vtransition_item (IM (projT1 (l item)))
Houtput_select: output item = Some m
Heq_trXm: trXm = preX ++ [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ sufX
sX: vstate (free_composite_vlsm IM)
Htr'pre: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) (no_additional_equivocations (free_composite_vlsm IM) sX)) (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Heqtr: tr = pre ++ [item] ++ suf
Hitem_equivocating: projT1 (l item) ∈ equivocating
Hsub_project: proper_equivocator_descriptors (sub_IM IM equivocating) (λ i : sub_index equivocating, final_descriptors_m (`i)) (finite_trace_last (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr)) → (trX : list (composite_transition_item (sub_IM IM equivocating))) (initial_descriptors : equivocator_descriptors (sub_IM IM equivocating)), proper_equivocator_descriptors (sub_IM IM equivocating) initial_descriptors (composite_state_sub_projection (equivocator_IM IM) equivocating is) ∧ equivocators_trace_project (sub_IM IM equivocating) (λ i : sub_index equivocating, final_descriptors_m (`i)) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr) = Some (trX, initial_descriptors) ∧ equivocators_state_project (sub_IM IM equivocating) (λ i : sub_index equivocating, final_descriptors_m (`i)) (finite_trace_last (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr)) = finite_trace_last (equivocators_state_project (sub_IM IM equivocating) initial_descriptors (composite_state_sub_projection (equivocator_IM IM) equivocating is)) trX ∧ finite_valid_trace (pre_loaded_vlsm (free_composite_vlsm (sub_IM IM equivocating)) (λ m : message, composite_has_been_observed IM Hbo sX m)) (equivocators_state_project (sub_IM IM equivocating) initial_descriptors (composite_state_sub_projection (equivocator_IM IM) equivocating is)) trX

proper_equivocator_descriptors (sub_IM IM equivocating) (λ i : sub_index equivocating, final_descriptors_m (`i)) (finite_trace_last (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr))
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
preX, sufX: list transition_item
item: composite_transition_item (equivocator_IM IM)
item_descriptors: equivocator_descriptors IM
item': vtransition_item (IM (projT1 (l item)))
Houtput_select: output item = Some m
Heq_trXm: trXm = preX ++ [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ sufX
sX: vstate (free_composite_vlsm IM)
Htr'pre: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) (no_additional_equivocations (free_composite_vlsm IM) sX)) (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Heqtr: tr = pre ++ [item] ++ suf
Hitem_equivocating: projT1 (l item) ∈ equivocating
Hsub_project: proper_equivocator_descriptors (sub_IM IM equivocating) (λ i : sub_index equivocating, final_descriptors_m (`i)) (finite_trace_last (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr)) → (trX : list (composite_transition_item (sub_IM IM equivocating))) (initial_descriptors : equivocator_descriptors (sub_IM IM equivocating)), proper_equivocator_descriptors (sub_IM IM equivocating) initial_descriptors (composite_state_sub_projection (equivocator_IM IM) equivocating is) ∧ equivocators_trace_project (sub_IM IM equivocating) (λ i : sub_index equivocating, final_descriptors_m (`i)) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr) = Some (trX, initial_descriptors) ∧ equivocators_state_project (sub_IM IM equivocating) (λ i : sub_index equivocating, final_descriptors_m (`i)) (finite_trace_last (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr)) = finite_trace_last (equivocators_state_project (sub_IM IM equivocating) initial_descriptors (composite_state_sub_projection (equivocator_IM IM) equivocating is)) trX ∧ finite_valid_trace (pre_loaded_vlsm (free_composite_vlsm (sub_IM IM equivocating)) (λ m : message, composite_has_been_observed IM Hbo sX m)) (equivocators_state_project (sub_IM IM equivocating) initial_descriptors (composite_state_sub_projection (equivocator_IM IM) equivocating is)) trX
Heq_lst: let lstx := finite_trace_last is tr in let lstj := finite_trace_last (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr) in lstj = composite_state_sub_projection (equivocator_IM IM) equivocating lstx

proper_equivocator_descriptors (sub_IM IM equivocating) (λ i : sub_index equivocating, final_descriptors_m (`i)) (finite_trace_last (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr))
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
preX, sufX: list transition_item
item: composite_transition_item (equivocator_IM IM)
item_descriptors: equivocator_descriptors IM
item': vtransition_item (IM (projT1 (l item)))
Houtput_select: output item = Some m
Heq_trXm: trXm = preX ++ [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ sufX
sX: vstate (free_composite_vlsm IM)
Htr'pre: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) (no_additional_equivocations (free_composite_vlsm IM) sX)) (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Heqtr: tr = pre ++ [item] ++ suf
Hitem_equivocating: projT1 (l item) ∈ equivocating
Hsub_project: proper_equivocator_descriptors (sub_IM IM equivocating) (λ i : sub_index equivocating, final_descriptors_m (`i)) (finite_trace_last (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr)) → (trX : list (composite_transition_item (sub_IM IM equivocating))) (initial_descriptors : equivocator_descriptors (sub_IM IM equivocating)), proper_equivocator_descriptors (sub_IM IM equivocating) initial_descriptors (composite_state_sub_projection (equivocator_IM IM) equivocating is) ∧ equivocators_trace_project (sub_IM IM equivocating) (λ i : sub_index equivocating, final_descriptors_m (`i)) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr) = Some (trX, initial_descriptors) ∧ equivocators_state_project (sub_IM IM equivocating) (λ i : sub_index equivocating, final_descriptors_m (`i)) (finite_trace_last (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr)) = finite_trace_last (equivocators_state_project (sub_IM IM equivocating) initial_descriptors (composite_state_sub_projection (equivocator_IM IM) equivocating is)) trX ∧ finite_valid_trace (pre_loaded_vlsm (free_composite_vlsm (sub_IM IM equivocating)) (λ m : message, composite_has_been_observed IM Hbo sX m)) (equivocators_state_project (sub_IM IM equivocating) initial_descriptors (composite_state_sub_projection (equivocator_IM IM) equivocating is)) trX
Heq_lst: finite_trace_last (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr) = composite_state_sub_projection (equivocator_IM IM) equivocating (finite_trace_last is tr)

proper_equivocator_descriptors (sub_IM IM equivocating) (λ i : sub_index equivocating, final_descriptors_m (`i)) (finite_trace_last (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr))
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
preX, sufX: list transition_item
item: composite_transition_item (equivocator_IM IM)
item_descriptors: equivocator_descriptors IM
item': vtransition_item (IM (projT1 (l item)))
Houtput_select: output item = Some m
Heq_trXm: trXm = preX ++ [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ sufX
sX: vstate (free_composite_vlsm IM)
Htr'pre: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) (no_additional_equivocations (free_composite_vlsm IM) sX)) (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Heqtr: tr = pre ++ [item] ++ suf
Hitem_equivocating: projT1 (l item) ∈ equivocating
Hsub_project: proper_equivocator_descriptors (sub_IM IM equivocating) (λ i : sub_index equivocating, final_descriptors_m (`i)) (finite_trace_last (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr)) → (trX : list (composite_transition_item (sub_IM IM equivocating))) (initial_descriptors : equivocator_descriptors (sub_IM IM equivocating)), proper_equivocator_descriptors (sub_IM IM equivocating) initial_descriptors (composite_state_sub_projection (equivocator_IM IM) equivocating is) ∧ equivocators_trace_project (sub_IM IM equivocating) (λ i : sub_index equivocating, final_descriptors_m (`i)) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr) = Some (trX, initial_descriptors) ∧ equivocators_state_project (sub_IM IM equivocating) (λ i : sub_index equivocating, final_descriptors_m (`i)) (finite_trace_last (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr)) = finite_trace_last (equivocators_state_project (sub_IM IM equivocating) initial_descriptors (composite_state_sub_projection (equivocator_IM IM) equivocating is)) trX ∧ finite_valid_trace (pre_loaded_vlsm (free_composite_vlsm (sub_IM IM equivocating)) (λ m : message, composite_has_been_observed IM Hbo sX m)) (equivocators_state_project (sub_IM IM equivocating) initial_descriptors (composite_state_sub_projection (equivocator_IM IM) equivocating is)) trX
Heq_lst: finite_trace_last (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr) = composite_state_sub_projection (equivocator_IM IM) equivocating (finite_trace_last is tr)

proper_equivocator_descriptors (sub_IM IM equivocating) (λ i : sub_index equivocating, final_descriptors_m (`i)) (composite_state_sub_projection (equivocator_IM IM) equivocating (finite_trace_last is tr))
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
preX, sufX: list transition_item
item: composite_transition_item (equivocator_IM IM)
item_descriptors: equivocator_descriptors IM
item': vtransition_item (IM (projT1 (l item)))
Houtput_select: output item = Some m
Heq_trXm: trXm = preX ++ [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ sufX
sX: vstate (free_composite_vlsm IM)
Htr'pre: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) (no_additional_equivocations (free_composite_vlsm IM) sX)) (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Heqtr: tr = pre ++ [item] ++ suf
Hitem_equivocating: projT1 (l item) ∈ equivocating
Hsub_project: proper_equivocator_descriptors (sub_IM IM equivocating) (λ i : sub_index equivocating, final_descriptors_m (`i)) (finite_trace_last (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr)) → (trX : list (composite_transition_item (sub_IM IM equivocating))) (initial_descriptors : equivocator_descriptors (sub_IM IM equivocating)), proper_equivocator_descriptors (sub_IM IM equivocating) initial_descriptors (composite_state_sub_projection (equivocator_IM IM) equivocating is) ∧ equivocators_trace_project (sub_IM IM equivocating) (λ i : sub_index equivocating, final_descriptors_m (`i)) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr) = Some (trX, initial_descriptors) ∧ equivocators_state_project (sub_IM IM equivocating) (λ i : sub_index equivocating, final_descriptors_m (`i)) (finite_trace_last (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr)) = finite_trace_last (equivocators_state_project (sub_IM IM equivocating) initial_descriptors (composite_state_sub_projection (equivocator_IM IM) equivocating is)) trX ∧ finite_valid_trace (pre_loaded_vlsm (free_composite_vlsm (sub_IM IM equivocating)) (λ m : message, composite_has_been_observed IM Hbo sX m)) (equivocators_state_project (sub_IM IM equivocating) initial_descriptors (composite_state_sub_projection (equivocator_IM IM) equivocating is)) trX
Heq_lst: finite_trace_last (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr) = composite_state_sub_projection (equivocator_IM IM) equivocating (finite_trace_last is tr)
e: sub_index equivocating

proper_descriptor (sub_IM IM equivocating e) (final_descriptors_m (`e)) (composite_state_sub_projection (equivocator_IM IM) equivocating (finite_trace_last is tr) e)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
preX, sufX: list transition_item
item: composite_transition_item (equivocator_IM IM)
item_descriptors: equivocator_descriptors IM
item': vtransition_item (IM (projT1 (l item)))
Houtput_select: output item = Some m
Heq_trXm: trXm = preX ++ [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ sufX
sX: vstate (free_composite_vlsm IM)
Htr'pre: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) (no_additional_equivocations (free_composite_vlsm IM) sX)) (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Heqtr: tr = pre ++ [item] ++ suf
Hitem_equivocating: projT1 (l item) ∈ equivocating
Hsub_project: proper_equivocator_descriptors (sub_IM IM equivocating) (λ i : sub_index equivocating, final_descriptors_m (`i)) (finite_trace_last (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr)) → (trX : list (composite_transition_item (sub_IM IM equivocating))) (initial_descriptors : equivocator_descriptors (sub_IM IM equivocating)), proper_equivocator_descriptors (sub_IM IM equivocating) initial_descriptors (composite_state_sub_projection (equivocator_IM IM) equivocating is) ∧ equivocators_trace_project (sub_IM IM equivocating) (λ i : sub_index equivocating, final_descriptors_m (`i)) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr) = Some (trX, initial_descriptors) ∧ equivocators_state_project (sub_IM IM equivocating) (λ i : sub_index equivocating, final_descriptors_m (`i)) (finite_trace_last (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr)) = finite_trace_last (equivocators_state_project (sub_IM IM equivocating) initial_descriptors (composite_state_sub_projection (equivocator_IM IM) equivocating is)) trX ∧ finite_valid_trace (pre_loaded_vlsm (free_composite_vlsm (sub_IM IM equivocating)) (λ m : message, composite_has_been_observed IM Hbo sX m)) (equivocators_state_project (sub_IM IM equivocating) initial_descriptors (composite_state_sub_projection (equivocator_IM IM) equivocating is)) trX
Heq_lst: finite_trace_last (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr) = composite_state_sub_projection (equivocator_IM IM) equivocating (finite_trace_last is tr)
x: index
i: bool_decide (sub_index_prop equivocating x)

proper_descriptor (sub_IM IM equivocating (x ↾ i)) (final_descriptors_m (`(x ↾ i))) (composite_state_sub_projection (equivocator_IM IM) equivocating (finite_trace_last is tr) (x ↾ i))
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: proper_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
preX, sufX: list transition_item
item: composite_transition_item (equivocator_IM IM)
item_descriptors: equivocator_descriptors IM
item': vtransition_item (IM (projT1 (l item)))
Houtput_select: output item = Some m
Heq_trXm: trXm = preX ++ [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ sufX
sX: vstate (free_composite_vlsm IM)
Htr'pre: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) (no_additional_equivocations (free_composite_vlsm IM) sX)) (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Heqtr: tr = pre ++ [item] ++ suf
Hitem_equivocating: projT1 (l item) ∈ equivocating
Hsub_project: proper_equivocator_descriptors (sub_IM IM equivocating) (λ i : sub_index equivocating, final_descriptors_m (`i)) (finite_trace_last (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr)) → (trX : list (composite_transition_item (sub_IM IM equivocating))) (initial_descriptors : equivocator_descriptors (sub_IM IM equivocating)), proper_equivocator_descriptors (sub_IM IM equivocating) initial_descriptors (composite_state_sub_projection (equivocator_IM IM) equivocating is) ∧ equivocators_trace_project (sub_IM IM equivocating) (λ i : sub_index equivocating, final_descriptors_m (`i)) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr) = Some (trX, initial_descriptors) ∧ equivocators_state_project (sub_IM IM equivocating) (λ i : sub_index equivocating, final_descriptors_m (`i)) (finite_trace_last (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr)) = finite_trace_last (equivocators_state_project (sub_IM IM equivocating) initial_descriptors (composite_state_sub_projection (equivocator_IM IM) equivocating is)) trX ∧ finite_valid_trace (pre_loaded_vlsm (free_composite_vlsm (sub_IM IM equivocating)) (λ m : message, composite_has_been_observed IM Hbo sX m)) (equivocators_state_project (sub_IM IM equivocating) initial_descriptors (composite_state_sub_projection (equivocator_IM IM) equivocating is)) trX
Heq_lst: finite_trace_last (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr) = composite_state_sub_projection (equivocator_IM IM) equivocating (finite_trace_last is tr)
x: index
i: bool_decide (sub_index_prop equivocating x)

proper_descriptor (sub_IM IM equivocating (x ↾ i)) (final_descriptors_m (`(x ↾ i))) (composite_state_sub_projection (equivocator_IM IM) equivocating (finite_trace_last is tr) (x ↾ i))
apply Hfinal_descriptors_m.
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
preX, sufX: list transition_item
item: composite_transition_item (equivocator_IM IM)
item_descriptors: equivocator_descriptors IM
item': vtransition_item (IM (projT1 (l item)))
Houtput_select: output item = Some m
Heq_trXm: trXm = preX ++ [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ sufX
sX: vstate (free_composite_vlsm IM)
Htr'pre: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) (no_additional_equivocations (free_composite_vlsm IM) sX)) (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Heqtr: tr = pre ++ [item] ++ suf
Hitem_equivocating: projT1 (l item) ∈ equivocating
Hsub_project: (trX : list (composite_transition_item (sub_IM IM equivocating))) (initial_descriptors : equivocator_descriptors (sub_IM IM equivocating)), proper_equivocator_descriptors (sub_IM IM equivocating) initial_descriptors (composite_state_sub_projection (equivocator_IM IM) equivocating is) ∧ equivocators_trace_project (sub_IM IM equivocating) (λ i : sub_index equivocating, final_descriptors_m (`i)) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr) = Some (trX, initial_descriptors) ∧ equivocators_state_project (sub_IM IM equivocating) (λ i : sub_index equivocating, final_descriptors_m (`i)) (finite_trace_last (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr)) = finite_trace_last (equivocators_state_project (sub_IM IM equivocating) initial_descriptors (composite_state_sub_projection (equivocator_IM IM) equivocating is)) trX ∧ finite_valid_trace (pre_loaded_vlsm (free_composite_vlsm (sub_IM IM equivocating)) (λ m : message, composite_has_been_observed IM Hbo sX m)) (equivocators_state_project (sub_IM IM equivocating) initial_descriptors (composite_state_sub_projection (equivocator_IM IM) equivocating is)) trX

can_emit (equivocators_composition_for_observed IM Hbs Hbr equivocating sX) m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
preX, sufX: list transition_item
item: composite_transition_item (equivocator_IM IM)
item_descriptors: equivocator_descriptors IM
item': vtransition_item (IM (projT1 (l item)))
Houtput_select: output item = Some m
Heq_trXm: trXm = preX ++ [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ sufX
sX: vstate (free_composite_vlsm IM)
Htr'pre: finite_valid_trace_init_to (pre_loaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_pre_loaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) (sub_has_been_sent_capabilities (equivocator_IM IM) equivocating (equivocator_Hbs IM Hbs)) (no_additional_equivocations (free_composite_vlsm IM) sX)) (composite_state_sub_projection (equivocator_IM IM) equivocating is) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Heqtr: tr = pre ++ [item] ++ suf
Hitem_equivocating: projT1 (l item) ∈ equivocating
trX': list (composite_transition_item (sub_IM IM equivocating))
initial_descriptors': equivocator_descriptors (sub_IM IM equivocating)
Hpr_tr': equivocators_trace_project (sub_IM IM equivocating) (λ i : sub_index equivocating, final_descriptors_m (`i)) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr) = Some (trX', initial_descriptors')
HtrX: finite_valid_trace (pre_loaded_vlsm (free_composite_vlsm (sub_IM IM equivocating)) (λ m : message, composite_has_been_observed IM Hbo sX m)) (equivocators_state_project (sub_IM IM equivocating) initial_descriptors' (composite_state_sub_projection (equivocator_IM IM) equivocating is)) trX'

can_emit (equivocators_composition_for_observed IM Hbs Hbr equivocating sX) m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
preX, sufX: list transition_item
item: composite_transition_item (equivocator_IM IM)
item_descriptors: equivocator_descriptors IM
item': vtransition_item (IM (projT1 (l item)))
Houtput_select: output item = Some m
Heq_trXm: trXm = preX ++ [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ sufX
sX: vstate (free_composite_vlsm IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Heqtr: tr = pre ++ [item] ++ suf
Hitem_equivocating: projT1 (l item) ∈ equivocating
trX': list (composite_transition_item (sub_IM IM equivocating))
initial_descriptors': equivocator_descriptors (sub_IM IM equivocating)
Hpr_tr': equivocators_trace_project (sub_IM IM equivocating) (λ i : sub_index equivocating, final_descriptors_m (`i)) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr) = Some (trX', initial_descriptors')
HtrX: finite_valid_trace (pre_loaded_vlsm (free_composite_vlsm (sub_IM IM equivocating)) (λ m : message, composite_has_been_observed IM Hbo sX m)) (equivocators_state_project (sub_IM IM equivocating) initial_descriptors' (composite_state_sub_projection (equivocator_IM IM) equivocating is)) trX'

can_emit (equivocators_composition_for_observed IM Hbs Hbr equivocating sX) m
(* State that by restricting trXm to the subset of equivocating nodes we obtain the same trX' trace. *)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
preX, sufX: list transition_item
item: composite_transition_item (equivocator_IM IM)
item_descriptors: equivocator_descriptors IM
item': vtransition_item (IM (projT1 (l item)))
Houtput_select: output item = Some m
Heq_trXm: trXm = preX ++ [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ sufX
sX: vstate (free_composite_vlsm IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Heqtr: tr = pre ++ [item] ++ suf
Hitem_equivocating: projT1 (l item) ∈ equivocating
trX': list (composite_transition_item (sub_IM IM equivocating))
initial_descriptors': equivocator_descriptors (sub_IM IM equivocating)
Hpr_tr': equivocators_trace_project (sub_IM IM equivocating) (λ i : sub_index equivocating, final_descriptors_m (`i)) (finite_trace_sub_projection (equivocator_IM IM) equivocating tr) = Some (trX', initial_descriptors')
HtrX: finite_valid_trace (pre_loaded_vlsm (free_composite_vlsm (sub_IM IM equivocating)) (λ m : message, composite_has_been_observed IM Hbo sX m)) (equivocators_state_project (sub_IM IM equivocating) initial_descriptors' (composite_state_sub_projection (equivocator_IM IM) equivocating is)) trX'
HeqtrX: finite_trace_sub_projection IM equivocating trXm = trX'

can_emit (equivocators_composition_for_observed IM Hbs Hbr equivocating sX) m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
preX, sufX: list transition_item
item: composite_transition_item (equivocator_IM IM)
item_descriptors: equivocator_descriptors IM
item': vtransition_item (IM (projT1 (l item)))
Houtput_select: output item = Some m
Heq_trXm: trXm = preX ++ [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ sufX
sX: vstate (free_composite_vlsm IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Heqtr: tr = pre ++ [item] ++ suf
Hitem_equivocating: projT1 (l item) ∈ equivocating
trX': list (composite_transition_item (sub_IM IM equivocating))
initial_descriptors': equivocator_descriptors (sub_IM IM equivocating)
HtrX: finite_valid_trace (pre_loaded_vlsm (free_composite_vlsm (sub_IM IM equivocating)) (λ m : message, composite_has_been_observed IM Hbo sX m)) (equivocators_state_project (sub_IM IM equivocating) initial_descriptors' (composite_state_sub_projection (equivocator_IM IM) equivocating is)) trX'
HeqtrX: finite_trace_sub_projection IM equivocating trXm = trX'

can_emit (equivocators_composition_for_observed IM Hbs Hbr equivocating sX) m
(* reduce the goal to showing that the message appears in trX'. *)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
preX, sufX: list transition_item
item: composite_transition_item (equivocator_IM IM)
item_descriptors: equivocator_descriptors IM
item': vtransition_item (IM (projT1 (l item)))
Houtput_select: output item = Some m
Heq_trXm: trXm = preX ++ [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ sufX
sX: vstate (free_composite_vlsm IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Heqtr: tr = pre ++ [item] ++ suf
Hitem_equivocating: projT1 (l item) ∈ equivocating
trX': list (composite_transition_item (sub_IM IM equivocating))
initial_descriptors': equivocator_descriptors (sub_IM IM equivocating)
isX: vstate (free_composite_vlsm (sub_IM IM equivocating))
HeqisX: isX = equivocators_state_project (sub_IM IM equivocating) initial_descriptors' (composite_state_sub_projection (equivocator_IM IM) equivocating is)
HtrX: finite_valid_trace (pre_loaded_vlsm (free_composite_vlsm (sub_IM IM equivocating)) (λ m : message, composite_has_been_observed IM Hbo sX m)) isX trX'
HeqtrX: finite_trace_sub_projection IM equivocating trXm = trX'

can_emit (equivocators_composition_for_observed IM Hbs Hbr equivocating sX) m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
preX, sufX: list transition_item
item: composite_transition_item (equivocator_IM IM)
item_descriptors: equivocator_descriptors IM
item': vtransition_item (IM (projT1 (l item)))
Houtput_select: output item = Some m
Heq_trXm: trXm = preX ++ [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ sufX
sX: vstate (free_composite_vlsm IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Heqtr: tr = pre ++ [item] ++ suf
Hitem_equivocating: projT1 (l item) ∈ equivocating
trX': list (composite_transition_item (sub_IM IM equivocating))
initial_descriptors': equivocator_descriptors (sub_IM IM equivocating)
isX: vstate (free_composite_vlsm (sub_IM IM equivocating))
HtrX: finite_valid_trace (pre_loaded_vlsm (free_composite_vlsm (sub_IM IM equivocating)) (λ m : message, composite_has_been_observed IM Hbo sX m)) isX trX'
HeqtrX: finite_trace_sub_projection IM equivocating trXm = trX'

can_emit (equivocators_composition_for_observed IM Hbs Hbr equivocating sX) m
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
preX, sufX: list transition_item
item: composite_transition_item (equivocator_IM IM)
item_descriptors: equivocator_descriptors IM
item': vtransition_item (IM (projT1 (l item)))
Houtput_select: output item = Some m
Heq_trXm: trXm = preX ++ [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ sufX
sX: vstate (free_composite_vlsm IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Heqtr: tr = pre ++ [item] ++ suf
Hitem_equivocating: projT1 (l item) ∈ equivocating
trX': list (composite_transition_item (sub_IM IM equivocating))
initial_descriptors': equivocator_descriptors (sub_IM IM equivocating)
isX: vstate (free_composite_vlsm (sub_IM IM equivocating))
HtrX: finite_valid_trace (pre_loaded_vlsm (free_composite_vlsm (sub_IM IM equivocating)) (λ m : message, composite_has_been_observed IM Hbo sX m)) isX trX'
HeqtrX: finite_trace_sub_projection IM equivocating trXm = trX'

trace_has_message (field_selector output) m trX'
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
preX, sufX: list transition_item
item: composite_transition_item (equivocator_IM IM)
item_descriptors: equivocator_descriptors IM
item': vtransition_item (IM (projT1 (l item)))
Houtput_select: output item = Some m
Heq_trXm: trXm = preX ++ [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ sufX
sX: vstate (free_composite_vlsm IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Heqtr: tr = pre ++ [item] ++ suf
Hitem_equivocating: projT1 (l item) ∈ equivocating
trX': list (composite_transition_item (sub_IM IM equivocating))
initial_descriptors': equivocator_descriptors (sub_IM IM equivocating)
isX: vstate (free_composite_vlsm (sub_IM IM equivocating))
HeqtrX: finite_trace_sub_projection IM equivocating trXm = trX'

trace_has_message (field_selector output) m trX'
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_init_to XE is s (pre ++ [item] ++ suf)
descriptors: equivocator_descriptors IM
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is (pre ++ [item] ++ suf))
preX, sufX: list transition_item
item_descriptors: equivocator_descriptors IM
item': vtransition_item (IM (projT1 (l item)))
Houtput_select: output item = Some m
sX: vstate (free_composite_vlsm IM)
Hitem_equivocating: projT1 (l item) ∈ equivocating
initial_descriptors': equivocator_descriptors (sub_IM IM equivocating)
isX: vstate (free_composite_vlsm (sub_IM IM equivocating))

trace_has_message (field_selector output) m (finite_trace_sub_projection IM equivocating (preX ++ [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ sufX))
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_init_to XE is s (pre ++ [item] ++ suf)
descriptors: equivocator_descriptors IM
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is (pre ++ [item] ++ suf))
preX, sufX: list transition_item
item_descriptors: equivocator_descriptors IM
item': vtransition_item (IM (projT1 (l item)))
Houtput_select: output item = Some m
sX: vstate (free_composite_vlsm IM)
Hitem_equivocating: projT1 (l item) ∈ equivocating
initial_descriptors': equivocator_descriptors (sub_IM IM equivocating)
isX: vstate (free_composite_vlsm (sub_IM IM equivocating))

trace_has_message (field_selector output) m (finite_trace_sub_projection IM equivocating preX ++ finite_trace_sub_projection IM equivocating [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ finite_trace_sub_projection IM equivocating sufX)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_init_to XE is s (pre ++ [item] ++ suf)
descriptors: equivocator_descriptors IM
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is (pre ++ [item] ++ suf))
preX, sufX: list transition_item
item_descriptors: equivocator_descriptors IM
item': vtransition_item (IM (projT1 (l item)))
Houtput_select: output item = Some m
sX: vstate (free_composite_vlsm IM)
Hitem_equivocating: projT1 (l item) ∈ equivocating
initial_descriptors': equivocator_descriptors (sub_IM IM equivocating)
isX: vstate (free_composite_vlsm (sub_IM IM equivocating))

Exists (field_selector output m) (finite_trace_sub_projection IM equivocating preX ++ finite_trace_sub_projection IM equivocating [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ finite_trace_sub_projection IM equivocating sufX)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_init_to XE is s (pre ++ [item] ++ suf)
descriptors: equivocator_descriptors IM
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is (pre ++ [item] ++ suf))
preX, sufX: list transition_item
item_descriptors: equivocator_descriptors IM
item': vtransition_item (IM (projT1 (l item)))
Houtput_select: output item = Some m
sX: vstate (free_composite_vlsm IM)
Hitem_equivocating: projT1 (l item) ∈ equivocating
initial_descriptors': equivocator_descriptors (sub_IM IM equivocating)
isX: vstate (free_composite_vlsm (sub_IM IM equivocating))

Exists (field_selector output m) (finite_trace_sub_projection IM equivocating preX) ∨ Exists (field_selector output m) (finite_trace_sub_projection IM equivocating [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}]) ∨ Exists (field_selector output m) (finite_trace_sub_projection IM equivocating sufX)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_init_to XE is s (pre ++ [item] ++ suf)
descriptors: equivocator_descriptors IM
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is (pre ++ [item] ++ suf))
preX, sufX: list transition_item
item_descriptors: equivocator_descriptors IM
item': vtransition_item (IM (projT1 (l item)))
Houtput_select: output item = Some m
sX: vstate (free_composite_vlsm IM)
Hitem_equivocating: projT1 (l item) ∈ equivocating
initial_descriptors': equivocator_descriptors (sub_IM IM equivocating)
isX: vstate (free_composite_vlsm (sub_IM IM equivocating))

Exists (field_selector output m) (finite_trace_sub_projection IM equivocating [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}]) ∨ Exists (field_selector output m) (finite_trace_sub_projection IM equivocating sufX)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_init_to XE is s (pre ++ [item] ++ suf)
descriptors: equivocator_descriptors IM
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is (pre ++ [item] ++ suf))
preX, sufX: list transition_item
item_descriptors: equivocator_descriptors IM
item': vtransition_item (IM (projT1 (l item)))
Houtput_select: output item = Some m
sX: vstate (free_composite_vlsm IM)
Hitem_equivocating: projT1 (l item) ∈ equivocating
initial_descriptors': equivocator_descriptors (sub_IM IM equivocating)
isX: vstate (free_composite_vlsm (sub_IM IM equivocating))

Exists (field_selector output m) (finite_trace_sub_projection IM equivocating [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}])
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_init_to XE is s (pre ++ [item] ++ suf)
descriptors: equivocator_descriptors IM
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is (pre ++ [item] ++ suf))
preX, sufX: list transition_item
item_descriptors: equivocator_descriptors IM
item': vtransition_item (IM (projT1 (l item)))
Houtput_select: output item = Some m
sX: vstate (free_composite_vlsm IM)
Hitem_equivocating: projT1 (l item) ∈ equivocating
initial_descriptors': equivocator_descriptors (sub_IM IM equivocating)
isX: vstate (free_composite_vlsm (sub_IM IM equivocating))

Exists (field_selector output m) match pre_VLSM_projection_transition_item_project (composite_type IM) (composite_type (sub_IM IM equivocating)) (composite_label_sub_projection_option IM equivocating) (composite_state_sub_projection IM equivocating) {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |} with | Some b => [b] | None => [] end
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_init_to XE is s (pre ++ [item] ++ suf)
descriptors: equivocator_descriptors IM
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is (pre ++ [item] ++ suf))
preX, sufX: list transition_item
item_descriptors: equivocator_descriptors IM
item': vtransition_item (IM (projT1 (l item)))
Houtput_select: output item = Some m
sX: vstate (free_composite_vlsm IM)
Hitem_equivocating: projT1 (l item) ∈ equivocating
initial_descriptors': equivocator_descriptors (sub_IM IM equivocating)
isX: vstate (free_composite_vlsm (sub_IM IM equivocating))

Exists (field_selector output m) match match match decide (projT1 (l {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}) ∈ equivocating) with | left i_in => Some (composite_label_sub_projection IM equivocating (l {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}) i_in) | right _ => None end with | Some lY => Some {| l := lY; input := input {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}; destination := composite_state_sub_projection IM equivocating (destination {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}); output := output {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |} |} | None => None end with | Some b => [b] | None => [] end
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_init_to XE is s (pre ++ [item] ++ suf)
descriptors: equivocator_descriptors IM
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is (pre ++ [item] ++ suf))
preX, sufX: list transition_item
item_descriptors: equivocator_descriptors IM
item': vtransition_item (IM (projT1 (l item)))
Houtput_select: output item = Some m
sX: vstate (free_composite_vlsm IM)
Hitem_equivocating: projT1 (l item) ∈ equivocating
initial_descriptors': equivocator_descriptors (sub_IM IM equivocating)
isX: vstate (free_composite_vlsm (sub_IM IM equivocating))

Exists (field_selector output m) match match match decide (projT1 (l item) ∈ equivocating) with | left i_in => Some (composite_label_sub_projection IM equivocating (existT (projT1 (l item)) (l item')) i_in) | right _ => None end with | Some lY => Some {| l := lY; input := input item; destination := composite_state_sub_projection IM equivocating (equivocators_state_project IM item_descriptors (destination item)); output := output item |} | None => None end with | Some b => [b] | None => [] end
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_init_to XE is s (pre ++ [item] ++ suf)
descriptors: equivocator_descriptors IM
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is (pre ++ [item] ++ suf))
preX, sufX: list transition_item
item_descriptors: equivocator_descriptors IM
item': vtransition_item (IM (projT1 (l item)))
Houtput_select: output item = Some m
sX: vstate (free_composite_vlsm IM)
Hitem_equivocating: projT1 (l item) ∈ equivocating
initial_descriptors': equivocator_descriptors (sub_IM IM equivocating)
isX: vstate (free_composite_vlsm (sub_IM IM equivocating))
H: projT1 (l item) ∈ equivocating

Exists (field_selector output m) [{| l := composite_label_sub_projection IM equivocating (existT (projT1 (l item)) (l item')) H; input := input item; destination := composite_state_sub_projection IM equivocating (equivocators_state_project IM item_descriptors (destination item)); output := output item |}]
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_init_to XE is s (pre ++ [item] ++ suf)
descriptors: equivocator_descriptors IM
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is (pre ++ [item] ++ suf))
preX, sufX: list transition_item
item_descriptors: equivocator_descriptors IM
item': vtransition_item (IM (projT1 (l item)))
Houtput_select: output item = Some m
sX: vstate (free_composite_vlsm IM)
Hitem_equivocating: projT1 (l item) ∈ equivocating
initial_descriptors': equivocator_descriptors (sub_IM IM equivocating)
isX: vstate (free_composite_vlsm (sub_IM IM equivocating))
H: projT1 (l item) ∈ equivocating

field_selector output m {| l := composite_label_sub_projection IM equivocating (existT (projT1 (l item)) (l item')) H; input := input item; destination := composite_state_sub_projection IM equivocating (equivocators_state_project IM item_descriptors (destination item)); output := output item |}
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
s: composite_state (equivocator_IM IM)
is: state
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_init_to XE is s (pre ++ [item] ++ suf)
descriptors: equivocator_descriptors IM
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is (pre ++ [item] ++ suf))
preX, sufX: list transition_item
item_descriptors: equivocator_descriptors IM
item': vtransition_item (IM (projT1 (l item)))
Houtput_select: output item = Some m
sX: vstate (free_composite_vlsm IM)
Hitem_equivocating: projT1 (l item) ∈ equivocating
initial_descriptors': equivocator_descriptors (sub_IM IM equivocating)
isX: vstate (free_composite_vlsm (sub_IM IM equivocating))
H: projT1 (l item) ∈ equivocating

output item = Some m
assumption. Qed.
Main result of this section, stating that traces which are valid for the equivocator-based definition of fixed equivocation project to traces which are valid for the simple-nodes definition of fixed equivocation.
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
final_descriptors: equivocator_descriptors IM
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
final_state:= finite_trace_last is tr: state
Hproper: proper_fixed_equivocator_descriptors final_descriptors final_state
Htr: finite_valid_trace XE is tr

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X isX trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
final_descriptors: equivocator_descriptors IM
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
final_state:= finite_trace_last is tr: state
Hproper: proper_fixed_equivocator_descriptors final_descriptors final_state
Htr: finite_valid_trace XE is tr

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X isX trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
final_descriptors: equivocator_descriptors IM
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
final_state:= finite_trace_last is tr: state
Hproper: proper_fixed_equivocator_descriptors final_descriptors final_state
Htr: finite_valid_trace XE is tr
l: composite_label IM
s: composite_state IM

fixed_equivocation_constraint IM Hbs Hbr equivocating l (s, None)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
final_descriptors: equivocator_descriptors IM
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
final_state:= finite_trace_last is tr: state
Hproper: proper_fixed_equivocator_descriptors final_descriptors final_state
Htr: finite_valid_trace XE is tr
constraint_has_been_sent_prop (fixed_equivocation_constraint IM Hbs Hbr equivocating)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
final_descriptors: equivocator_descriptors IM
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
final_state:= finite_trace_last is tr: state
Hproper: proper_fixed_equivocator_descriptors final_descriptors final_state
Htr: finite_valid_trace XE is tr
l: composite_label IM
s: composite_state IM

fixed_equivocation_constraint IM Hbs Hbr equivocating l (s, None)
exact I.
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
final_descriptors: equivocator_descriptors IM
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
final_state:= finite_trace_last is tr: state
Hproper: proper_fixed_equivocator_descriptors final_descriptors final_state
Htr: finite_valid_trace XE is tr

constraint_has_been_sent_prop (fixed_equivocation_constraint IM Hbs Hbr equivocating)
apply fixed_equivocation_constraint_has_constraint_has_been_sent_prop. Qed.
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
final_descriptors: equivocator_descriptors IM

VLSM_partial_projection XE X (equivocators_partial_trace_project IM finite_index final_descriptors)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
final_descriptors: equivocator_descriptors IM

VLSM_partial_projection XE X (equivocators_partial_trace_project IM finite_index final_descriptors)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
final_descriptors: equivocator_descriptors IM

(sX : vstate XE) (trX : list (vtransition_item XE)) (sY : vstate X) (trY : list (vtransition_item X)), equivocators_partial_trace_project IM finite_index final_descriptors (sX, trX) = Some (sY, trY) → (s'X : state) (preX : list transition_item), finite_trace_last s'X preX = sX → finite_valid_trace_from XE s'X (preX ++ trX) → (s'Y : vstate X) (preY : list (vtransition_item X)), equivocators_partial_trace_project IM finite_index final_descriptors (s'X, preX ++ trX) = Some (s'Y, preY ++ trY) ∧ finite_trace_last s'Y preY = sY
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
final_descriptors: equivocator_descriptors IM
(sX : vstate XE) (trX : list (vtransition_item XE)) (sY : vstate X) (trY : list (vtransition_item X)), equivocators_partial_trace_project IM finite_index final_descriptors (sX, trX) = Some (sY, trY) → finite_valid_trace XE sX trX → finite_valid_trace X sY trY
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
final_descriptors: equivocator_descriptors IM

(sX : vstate XE) (trX : list (vtransition_item XE)) (sY : vstate X) (trY : list (vtransition_item X)), equivocators_partial_trace_project IM finite_index final_descriptors (sX, trX) = Some (sY, trY) → (s'X : state) (preX : list transition_item), finite_trace_last s'X preX = sX → finite_valid_trace_from XE s'X (preX ++ trX) → (s'Y : vstate X) (preY : list (vtransition_item X)), equivocators_partial_trace_project IM finite_index final_descriptors (s'X, preX ++ trX) = Some (s'Y, preY ++ trY) ∧ finite_trace_last s'Y preY = sY
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
final_descriptors: equivocator_descriptors IM
s: vstate XE
tr: list (vtransition_item XE)
sX: vstate X
trX: list (vtransition_item X)
Hpr_tr: equivocators_partial_trace_project IM finite_index final_descriptors (s, tr) = Some (sX, trX)
s_pre: state
pre: list transition_item
Hs_lst: finite_trace_last s_pre pre = s
Hpre_tr: finite_valid_trace_from XE s_pre (pre ++ tr)

(s'Y : vstate X) (preY : list (vtransition_item X)), equivocators_partial_trace_project IM finite_index final_descriptors (s_pre, pre ++ tr) = Some (s'Y, preY ++ trX) ∧ finite_trace_last s'Y preY = sX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
final_descriptors: equivocator_descriptors IM
s: vstate XE
tr: list (vtransition_item XE)
sX: vstate X
trX: list (vtransition_item X)
Hpr_tr: equivocators_partial_trace_project IM finite_index final_descriptors (s, tr) = Some (sX, trX)
s_pre: state
pre: list transition_item
Hs_lst: finite_trace_last s_pre pre = s
Hpre_tr: finite_valid_trace_from XE s_pre (pre ++ tr)

finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) s_pre (pre ++ tr)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
final_descriptors: equivocator_descriptors IM
s: vstate XE
tr: list (vtransition_item XE)
sX: vstate X
trX: list (vtransition_item X)
Hpr_tr: equivocators_partial_trace_project IM finite_index final_descriptors (s, tr) = Some (sX, trX)
s_pre: state
pre: list transition_item
Hs_lst: finite_trace_last s_pre pre = s
Hpre_tr: finite_valid_trace_from XE s_pre (pre ++ tr)
HPreFree_pre_tr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) s_pre (pre ++ tr)
(s'Y : vstate X) (preY : list (vtransition_item X)), equivocators_partial_trace_project IM finite_index final_descriptors (s_pre, pre ++ tr) = Some (s'Y, preY ++ trX) ∧ finite_trace_last s'Y preY = sX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
final_descriptors: equivocator_descriptors IM
s: vstate XE
tr: list (vtransition_item XE)
sX: vstate X
trX: list (vtransition_item X)
Hpr_tr: equivocators_partial_trace_project IM finite_index final_descriptors (s, tr) = Some (sX, trX)
s_pre: state
pre: list transition_item
Hs_lst: finite_trace_last s_pre pre = s
Hpre_tr: finite_valid_trace_from XE s_pre (pre ++ tr)

finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) s_pre (pre ++ tr)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
final_descriptors: equivocator_descriptors IM
s: vstate XE
tr: list (vtransition_item XE)
sX: vstate X
trX: list (vtransition_item X)
Hpr_tr: equivocators_partial_trace_project IM finite_index final_descriptors (s, tr) = Some (sX, trX)
s_pre: state
pre: list transition_item
Hs_lst: finite_trace_last s_pre pre = s

finite_valid_trace_from XE s_pre (pre ++ tr) → finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) s_pre (pre ++ tr)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
final_descriptors: equivocator_descriptors IM
s: vstate XE
tr: list (vtransition_item XE)
sX: vstate X
trX: list (vtransition_item X)
Hpr_tr: equivocators_partial_trace_project IM finite_index final_descriptors (s, tr) = Some (sX, trX)
s_pre: state
pre: list transition_item
Hs_lst: finite_trace_last s_pre pre = s

VLSM_incl_part (composite_vlsm_machine (equivocator_IM IM) (equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating)) (pre_loaded_with_all_messages_vlsm_machine FreeE)
apply equivocators_fixed_equivocations_vlsm_incl_PreFree.
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
final_descriptors: equivocator_descriptors IM
s: vstate XE
tr: list (vtransition_item XE)
sX: vstate X
trX: list (vtransition_item X)
Hpr_tr: equivocators_partial_trace_project IM finite_index final_descriptors (s, tr) = Some (sX, trX)
s_pre: state
pre: list transition_item
Hs_lst: finite_trace_last s_pre pre = s
Hpre_tr: finite_valid_trace_from XE s_pre (pre ++ tr)
HPreFree_pre_tr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) s_pre (pre ++ tr)

(s'Y : vstate X) (preY : list (vtransition_item X)), equivocators_partial_trace_project IM finite_index final_descriptors (s_pre, pre ++ tr) = Some (s'Y, preY ++ trX) ∧ finite_trace_last s'Y preY = sX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
final_descriptors: equivocator_descriptors IM
s: vstate XE
tr: list (vtransition_item XE)
sX: vstate X
trX: list (vtransition_item X)
Hpr_tr: equivocators_partial_trace_project IM finite_index final_descriptors (s, tr) = Some (sX, trX)
s_pre: state
pre: list transition_item
Hs_lst: finite_trace_last s_pre pre = s
HPreFree_pre_tr: finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) s_pre (pre ++ tr)

(s'Y : vstate X) (preY : list (vtransition_item X)), equivocators_partial_trace_project IM finite_index final_descriptors (s_pre, pre ++ tr) = Some (s'Y, preY ++ trX) ∧ finite_trace_last s'Y preY = sX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
final_descriptors: equivocator_descriptors IM

(s : vstate XE) (tr : list (vtransition_item XE)) (sX : vstate X) (trX : list (vtransition_item X)), equivocators_partial_trace_project IM finite_index final_descriptors (s, tr) = Some (sX, trX) → (s_pre : state) (pre : list transition_item), finite_trace_last s_pre pre = s → finite_valid_trace_from (pre_loaded_with_all_messages_vlsm FreeE) s_pre (pre ++ tr) → (s'Y : vstate X) (preY : list (vtransition_item X)), equivocators_partial_trace_project IM finite_index final_descriptors (s_pre, pre ++ tr) = Some (s'Y, preY ++ trX) ∧ finite_trace_last s'Y preY = sX
apply equivocators_partial_trace_project_extends_left.
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
final_descriptors: equivocator_descriptors IM

(sX : vstate XE) (trX : list (vtransition_item XE)) (sY : vstate X) (trY : list (vtransition_item X)), equivocators_partial_trace_project IM finite_index final_descriptors (sX, trX) = Some (sY, trY) → finite_valid_trace XE sX trX → finite_valid_trace X sY trY
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
final_descriptors: equivocator_descriptors IM
s: vstate XE
tr: list (vtransition_item XE)
sX: vstate X
trX: list (vtransition_item X)
Hpr_tr: equivocators_partial_trace_project IM finite_index final_descriptors (s, tr) = Some (sX, trX)
Htr: finite_valid_trace XE s tr

finite_valid_trace X sX trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
final_descriptors: equivocator_descriptors IM
s: vstate XE
tr: list (vtransition_item XE)
sX: vstate X
trX: list (vtransition_item X)
Hpr_tr: equivocators_partial_trace_project IM finite_index final_descriptors (s, tr) = Some (sX, trX)
Htr: finite_valid_trace XE s tr
Hnot_equiv: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors)
Hs_project: equivocators_state_project IM initial_descriptors s = sX

finite_valid_trace X sX trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
final_descriptors: equivocator_descriptors IM
s: vstate XE
tr: list (vtransition_item XE)
sX: vstate X
trX: list (vtransition_item X)
Hpr_tr: equivocators_partial_trace_project IM finite_index final_descriptors (s, tr) = Some (sX, trX)
Htr: finite_valid_trace XE s tr
Hnot_equiv: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors)
Hs_project: equivocators_state_project IM initial_descriptors s = sX
Hlst: valid_state_prop XE (finite_trace_last s tr)

finite_valid_trace X sX trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
final_descriptors: equivocator_descriptors IM
s: vstate XE
tr: list (vtransition_item XE)
sX: vstate X
trX: list (vtransition_item X)
Hpr_tr: equivocators_partial_trace_project IM finite_index final_descriptors (s, tr) = Some (sX, trX)
Htr: finite_valid_trace XE s tr
Hnot_equiv: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last s tr)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors)
Hs_project: equivocators_state_project IM initial_descriptors s = sX
Hlst: valid_state_prop XE (finite_trace_last s tr)

finite_valid_trace X sX trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
final_descriptors: equivocator_descriptors IM
s: vstate XE
tr: list (vtransition_item XE)
sX: vstate X
trX: list (vtransition_item X)
Hpr_tr: equivocators_partial_trace_project IM finite_index final_descriptors (s, tr) = Some (sX, trX)
Htr: finite_valid_trace XE s tr
Hnot_equiv: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last s tr)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors)
Hs_project: equivocators_state_project IM initial_descriptors s = sX
Hlst: valid_state_prop XE (finite_trace_last s tr)
_trX: list (composite_transition_item IM)
_initial_descriptors: equivocator_descriptors IM
_Htr_project: equivocators_trace_project IM final_descriptors tr = Some (_trX, _initial_descriptors)
HtrX: finite_valid_trace X (equivocators_state_project IM _initial_descriptors s) _trX

finite_valid_trace X sX trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
final_descriptors: equivocator_descriptors IM
s: vstate XE
tr: list (vtransition_item XE)
sX: vstate X
trX: list (vtransition_item X)
Hpr_tr: equivocators_partial_trace_project IM finite_index final_descriptors (s, tr) = Some (sX, trX)
Htr: finite_valid_trace XE s tr
Hnot_equiv: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last s tr)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors)
Hs_project: equivocators_state_project IM initial_descriptors s = sX
Hlst: valid_state_prop XE (finite_trace_last s tr)
_trX: list (composite_transition_item IM)
_initial_descriptors: equivocator_descriptors IM
_Htr_project: Some (trX, initial_descriptors) = Some (_trX, _initial_descriptors)
HtrX: finite_valid_trace X (equivocators_state_project IM _initial_descriptors s) _trX

finite_valid_trace X sX trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
final_descriptors: equivocator_descriptors IM
s: vstate XE
tr: list (vtransition_item XE)
sX: vstate X
trX: list (vtransition_item X)
Hpr_tr: equivocators_partial_trace_project IM finite_index final_descriptors (s, tr) = Some (sX, trX)
Htr: finite_valid_trace XE s tr
Hnot_equiv: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last s tr)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors)
Hs_project: equivocators_state_project IM initial_descriptors s = sX
Hlst: valid_state_prop XE (finite_trace_last s tr)
_trX: list (composite_transition_item IM)
_initial_descriptors: equivocator_descriptors IM
_Htr_project: Some (trX, initial_descriptors) = Some (_trX, _initial_descriptors)
HtrX: finite_valid_trace X (equivocators_state_project IM _initial_descriptors s) _trX
H0: trX = _trX
H1: initial_descriptors = _initial_descriptors

finite_valid_trace X sX _trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
final_descriptors: equivocator_descriptors IM
s: vstate XE
tr: list (vtransition_item XE)
_trX: list (composite_transition_item IM)
_initial_descriptors: equivocator_descriptors IM
_Htr_project: Some (_trX, _initial_descriptors) = Some (_trX, _initial_descriptors)
Hpr_tr: equivocators_partial_trace_project IM finite_index final_descriptors (s, tr) = Some (equivocators_state_project IM _initial_descriptors s, _trX)
Htr: finite_valid_trace XE s tr
Hnot_equiv: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last s tr)
Htr_project: equivocators_trace_project IM final_descriptors tr = Some (_trX, _initial_descriptors)
Hlst: valid_state_prop XE (finite_trace_last s tr)
HtrX: finite_valid_trace X (equivocators_state_project IM _initial_descriptors s) _trX

finite_valid_trace X (equivocators_state_project IM _initial_descriptors s) _trX
assumption. Qed.
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message

VLSM_projection XE X (equivocators_total_label_project IM) (equivocators_total_state_project IM)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message

VLSM_projection XE X (equivocators_total_label_project IM) (equivocators_total_state_project IM)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
sX: state
trX: list transition_item
H: finite_valid_trace_from XE sX trX

equivocators_total_state_project IM (finite_trace_last sX trX) = finite_trace_last (equivocators_total_state_project IM sX) (pre_VLSM_projection_trace_project (type XE) (type X) (equivocators_total_label_project IM) (equivocators_total_state_project IM) trX)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
sX: state
trX: list transition_item
H: finite_valid_trace XE sX trX
finite_valid_trace X (equivocators_total_state_project IM sX) (pre_VLSM_projection_trace_project (type XE) (type X) (equivocators_total_label_project IM) (equivocators_total_state_project IM) trX)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
sX: state
trX: list transition_item
H: finite_valid_trace_from XE sX trX

equivocators_total_state_project IM (finite_trace_last sX trX) = finite_trace_last (equivocators_total_state_project IM sX) (pre_VLSM_projection_trace_project (type XE) (type X) (equivocators_total_label_project IM) (equivocators_total_state_project IM) trX)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
sX: state
trX: list transition_item
H: finite_valid_trace_from XE sX trX

finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm (equivocator_IM IM))) sX trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
sX: state
trX: list transition_item

finite_valid_trace_from XE sX trX → finite_valid_trace_from (pre_loaded_with_all_messages_vlsm (free_composite_vlsm (equivocator_IM IM))) sX trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
sX: state
trX: list transition_item

VLSM_incl_part (composite_vlsm_machine (equivocator_IM IM) (equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating)) (pre_loaded_with_all_messages_vlsm_machine (free_composite_vlsm (equivocator_IM IM)))
apply equivocators_fixed_equivocations_vlsm_incl_PreFree.
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
sX: state
trX: list transition_item
H: finite_valid_trace XE sX trX

finite_valid_trace X (equivocators_total_state_project IM sX) (pre_VLSM_projection_trace_project (type XE) (type X) (equivocators_total_label_project IM) (equivocators_total_state_project IM) trX)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
sX: state
trX: list transition_item
H: finite_valid_trace XE sX trX

finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) sX trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
sX: state
trX: list transition_item
H: finite_valid_trace XE sX trX
Hpre_tr: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) sX trX
finite_valid_trace X (equivocators_total_state_project IM sX) (pre_VLSM_projection_trace_project (type XE) (type X) (equivocators_total_label_project IM) (equivocators_total_state_project IM) trX)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
sX: state
trX: list transition_item
H: finite_valid_trace XE sX trX

finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) sX trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
sX: state
trX: list transition_item

finite_valid_trace XE sX trX → finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) sX trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
sX: state
trX: list transition_item

VLSM_incl_part (composite_vlsm_machine (equivocator_IM IM) (equivocators_fixed_equivocations_constraint IM Hbs index_listing equivocating)) (pre_loaded_with_all_messages_vlsm_machine FreeE)
apply equivocators_fixed_equivocations_vlsm_incl_PreFree.
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
sX: state
trX: list transition_item
H: finite_valid_trace XE sX trX
Hpre_tr: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) sX trX

finite_valid_trace X (equivocators_total_state_project IM sX) (pre_VLSM_projection_trace_project (type XE) (type X) (equivocators_total_label_project IM) (equivocators_total_state_project IM) trX)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
sX: state
trX: list transition_item
H: finite_valid_trace XE sX trX
Hpre_tr: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) sX trX
Hsim: equivocators_partial_trace_project IM finite_index (zero_descriptor IM) (sX, trX) = Some (equivocators_state_project IM (zero_descriptor IM) sX, equivocators_total_trace_project IM trX) → finite_valid_trace XE sX trX → finite_valid_trace X (equivocators_state_project IM (zero_descriptor IM) sX) (equivocators_total_trace_project IM trX)

finite_valid_trace X (equivocators_total_state_project IM sX) (pre_VLSM_projection_trace_project (type XE) (type X) (equivocators_total_label_project IM) (equivocators_total_state_project IM) trX)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
sX: state
trX: list transition_item
H: finite_valid_trace XE sX trX
Hpre_tr: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) sX trX
Hsim: equivocators_partial_trace_project IM finite_index (zero_descriptor IM) (sX, trX) = Some (equivocators_state_project IM (zero_descriptor IM) sX, equivocators_total_trace_project IM trX) → finite_valid_trace XE sX trX → finite_valid_trace X (equivocators_state_project IM (zero_descriptor IM) sX) (equivocators_total_trace_project IM trX)

equivocators_partial_trace_project IM finite_index (zero_descriptor IM) (sX, trX) = Some (equivocators_state_project IM (zero_descriptor IM) sX, equivocators_total_trace_project IM trX)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
sX: state
trX: list transition_item
H: finite_valid_trace XE sX trX
Hpre_tr: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) sX trX
Hsim: finite_valid_trace XE sX trX → finite_valid_trace X (equivocators_state_project IM (zero_descriptor IM) sX) (equivocators_total_trace_project IM trX)
finite_valid_trace X (equivocators_total_state_project IM sX) (pre_VLSM_projection_trace_project (type XE) (type X) (equivocators_total_label_project IM) (equivocators_total_state_project IM) trX)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
sX: state
trX: list transition_item
H: finite_valid_trace XE sX trX
Hpre_tr: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) sX trX
Hsim: equivocators_partial_trace_project IM finite_index (zero_descriptor IM) (sX, trX) = Some (equivocators_state_project IM (zero_descriptor IM) sX, equivocators_total_trace_project IM trX) → finite_valid_trace XE sX trX → finite_valid_trace X (equivocators_state_project IM (zero_descriptor IM) sX) (equivocators_total_trace_project IM trX)

equivocators_partial_trace_project IM finite_index (zero_descriptor IM) (sX, trX) = Some (equivocators_state_project IM (zero_descriptor IM) sX, equivocators_total_trace_project IM trX)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
sX: state
trX: list transition_item
H: finite_valid_trace XE sX trX
Hpre_tr: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) sX trX
Hsim: equivocators_partial_trace_project IM finite_index (zero_descriptor IM) (sX, trX) = Some (equivocators_state_project IM (zero_descriptor IM) sX, equivocators_total_trace_project IM trX) → finite_valid_trace XE sX trX → finite_valid_trace X (equivocators_state_project IM (zero_descriptor IM) sX) (equivocators_total_trace_project IM trX)

(if decide (not_equivocating_equivocator_descriptors IM (zero_descriptor IM) (finite_trace_last sX trX)) then match equivocators_trace_project IM (zero_descriptor IM) trX with | Some (trX, initial_descriptors) => Some (equivocators_state_project IM initial_descriptors sX, trX) | None => None end else None) = Some (equivocators_state_project IM (zero_descriptor IM) sX, equivocators_total_trace_project IM trX)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
sX: state
trX: list transition_item
H: finite_valid_trace XE sX trX
Hpre_tr: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) sX trX
Hsim: equivocators_partial_trace_project IM finite_index (zero_descriptor IM) (sX, trX) = Some (equivocators_state_project IM (zero_descriptor IM) sX, equivocators_total_trace_project IM trX) → finite_valid_trace XE sX trX → finite_valid_trace X (equivocators_state_project IM (zero_descriptor IM) sX) (equivocators_total_trace_project IM trX)

match equivocators_trace_project IM (zero_descriptor IM) trX with | Some (trX, initial_descriptors) => Some (equivocators_state_project IM initial_descriptors sX, trX) | None => None end = Some (equivocators_state_project IM (zero_descriptor IM) sX, equivocators_total_trace_project IM trX)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
sX: state
trX: list transition_item
H: finite_valid_trace XE sX trX
Hpre_tr: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) sX trX
Hsim: equivocators_partial_trace_project IM finite_index (zero_descriptor IM) (sX, trX) = Some (equivocators_state_project IM (zero_descriptor IM) sX, equivocators_total_trace_project IM trX) → finite_valid_trace XE sX trX → finite_valid_trace X (equivocators_state_project IM (zero_descriptor IM) sX) (equivocators_total_trace_project IM trX)

Some (equivocators_state_project IM (zero_descriptor IM) sX, equivocators_total_trace_project IM trX) = Some (equivocators_state_project IM (zero_descriptor IM) sX, equivocators_total_trace_project IM trX)
reflexivity.
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
sX: state
trX: list transition_item
H: finite_valid_trace XE sX trX
Hpre_tr: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) sX trX
Hsim: finite_valid_trace XE sX trX → finite_valid_trace X (equivocators_state_project IM (zero_descriptor IM) sX) (equivocators_total_trace_project IM trX)

finite_valid_trace X (equivocators_total_state_project IM sX) (pre_VLSM_projection_trace_project (type XE) (type X) (equivocators_total_label_project IM) (equivocators_total_state_project IM) trX)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
sX: state
trX: list transition_item
H: finite_valid_trace X (equivocators_state_project IM (zero_descriptor IM) sX) (equivocators_total_trace_project IM trX)
Hpre_tr: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) sX trX
Hsim: finite_valid_trace XE sX trX → finite_valid_trace X (equivocators_state_project IM (zero_descriptor IM) sX) (equivocators_total_trace_project IM trX)

finite_valid_trace X (equivocators_total_state_project IM sX) (pre_VLSM_projection_trace_project (type XE) (type X) (equivocators_total_label_project IM) (equivocators_total_state_project IM) trX)
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
sX: state
trX: list transition_item
H: finite_valid_trace X (equivocators_state_project IM (zero_descriptor IM) sX) (equivocators_total_trace_project IM trX)
Hpre_tr: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) sX trX
Hsim: finite_valid_trace XE sX trX → finite_valid_trace X (equivocators_state_project IM (zero_descriptor IM) sX) (equivocators_total_trace_project IM trX)
tr: list transition_item
Heqtr: tr = pre_VLSM_projection_trace_project (type XE) (type X) (equivocators_total_label_project IM) (equivocators_total_state_project IM) trX

finite_valid_trace X (equivocators_total_state_project IM sX) tr
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
sX: state
trX: list transition_item
H: finite_valid_trace X (equivocators_state_project IM (zero_descriptor IM) sX) (equivocators_total_trace_project IM trX)
Hpre_tr: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) sX trX
Hsim: finite_valid_trace XE sX trX → finite_valid_trace X (equivocators_state_project IM (zero_descriptor IM) sX) (equivocators_total_trace_project IM trX)
tr: list transition_item
Heqtr: tr = pre_VLSM_projection_trace_project (type XE) (type X) (equivocators_total_label_project IM) (equivocators_total_state_project IM) trX

equivocators_total_trace_project IM trX = tr
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
sX: state
trX: list transition_item
H: finite_valid_trace X (equivocators_state_project IM (zero_descriptor IM) sX) (equivocators_total_trace_project IM trX)
Hpre_tr: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) sX trX
Hsim: finite_valid_trace XE sX trX → finite_valid_trace X (equivocators_state_project IM (zero_descriptor IM) sX) (equivocators_total_trace_project IM trX)

equivocators_total_trace_project IM trX = pre_VLSM_projection_trace_project (type XE) (type X) (equivocators_total_label_project IM) (equivocators_total_state_project IM) trX
message: Type
EqDecision0: EqDecision message
index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equivocating: set index
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing equivocating: VLSM message
X:= fixed_equivocation_vlsm_composition IM Hbs Hbr equivocating: VLSM message
equivocators_free_Hbs:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability (free_composite_vlsm (equivocator_IM IM))
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeE_HasBeenSentCapability:= free_composite_HasBeenSentCapability (equivocator_IM IM) finite_index (equivocator_Hbs IM Hbs): HasBeenSentCapability FreeE
Hdec_init: i : index, vdecidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
Free_HasBeenSentCapability:= free_composite_HasBeenSentCapability IM finite_index Hbs: HasBeenSentCapability Free
Free_HasBeenReceivedCapability:= free_composite_HasBeenReceivedCapability IM finite_index Hbr: HasBeenReceivedCapability Free
Free_HasBeenObservedCapability:= free_composite_HasBeenObservedCapability IM finite_index Hbo: HasBeenObservedCapability Free
Free_no_additional_equivocation_decidable:= no_additional_equivocations_dec Free: RelDecision (no_additional_equivocations Free)
index_equivocating_prop:= sub_index_prop equivocating: index → Prop
equivocating_index:= sub_index equivocating: Type
equivocating_IM:= sub_IM IM equivocating: sub_index equivocating → VLSM message
free_equivocating_vlsm_composition:= free_composite_vlsm equivocating_IM: VLSM message
sub_equivocator_IM:= sub_IM (equivocator_IM IM) equivocating: sub_index equivocating → VLSM message
sX: state
trX: list transition_item
H: finite_valid_trace X (equivocators_state_project IM (zero_descriptor IM) sX) (equivocators_total_trace_project IM trX)
Hpre_tr: finite_valid_trace (pre_loaded_with_all_messages_vlsm FreeE) sX trX
Hsim: finite_valid_trace XE sX trX → finite_valid_trace X (equivocators_state_project IM (zero_descriptor IM) sX) (equivocators_total_trace_project IM trX)

pre_VLSM_projection_trace_project (type XE) (type X) (equivocators_total_label_project IM) (equivocators_total_state_project IM) trX = equivocators_total_trace_project IM trX
apply (equivocators_total_VLSM_projection_trace_project IM (proj1 Hpre_tr)). Qed. End from_equivocators_to_nodes. Section all_equivocating.

Fixed Equivocation for all Equivocators

In this section we show that if the set of nodes allowed to equivocate in the fixed set equivocation is the entire set of nodes, then the composition under the fixed-set equivocation constraint is the same as the composition with only the no-message-equivocation constraint.
Context
  {message : Type}
  {index : Type}
  {IndEqDec : EqDecision index}
  (IM : index -> VLSM message)
  (Hbs : forall i : index, HasBeenSentCapability (IM i))
  {index_listing : list index}
  (finite_index : Listing index_listing)
  (XE : VLSM message := equivocators_fixed_equivocations_vlsm IM Hbs index_listing index_listing)
  (NE : VLSM message := equivocators_no_equivocations_vlsm IM Hbs)
  .

message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing index_listing: VLSM message
NE:= equivocators_no_equivocations_vlsm IM Hbs: VLSM message

strong_constraint_subsumption (equivocator_IM IM) (equivocators_no_equivocations_constraint IM Hbs) (equivocators_fixed_equivocations_constraint IM Hbs index_listing index_listing)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing index_listing: VLSM message
NE:= equivocators_no_equivocations_vlsm IM Hbs: VLSM message

strong_constraint_subsumption (equivocator_IM IM) (equivocators_no_equivocations_constraint IM Hbs) (equivocators_fixed_equivocations_constraint IM Hbs index_listing index_listing)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing index_listing: VLSM message
NE:= equivocators_no_equivocations_vlsm IM Hbs: VLSM message
l: composite_label (equivocator_IM IM)
som: (composite_state (equivocator_IM IM) * option message)%type
H: equivocators_no_equivocations_constraint IM Hbs l som

state_has_fixed_equivocation IM index_listing index_listing (composite_transition (equivocator_IM IM) l som).1
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing index_listing: VLSM message
NE:= equivocators_no_equivocations_vlsm IM Hbs: VLSM message
l: composite_label (equivocator_IM IM)
som: (composite_state (equivocator_IM IM) * option message)%type
H: equivocators_no_equivocations_constraint IM Hbs l som
x: index
H0: x ∈ equivocating_indices IM index_listing (composite_transition (equivocator_IM IM) l som).1

x ∈ index_listing
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing index_listing: VLSM message
NE:= equivocators_no_equivocations_vlsm IM Hbs: VLSM message
l: composite_label (equivocator_IM IM)
som: (composite_state (equivocator_IM IM) * option message)%type
H: equivocators_no_equivocations_constraint IM Hbs l som
x: index
H0: x ∈ equivocating_indices IM index_listing (composite_transition (equivocator_IM IM) l som).1

In x index_listing
apply finite_index. Qed.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing index_listing: VLSM message
NE:= equivocators_no_equivocations_vlsm IM Hbs: VLSM message

strong_constraint_subsumption (equivocator_IM IM) (equivocators_fixed_equivocations_constraint IM Hbs index_listing index_listing) (equivocators_no_equivocations_constraint IM Hbs)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing index_listing: VLSM message
NE:= equivocators_no_equivocations_vlsm IM Hbs: VLSM message

strong_constraint_subsumption (equivocator_IM IM) (equivocators_fixed_equivocations_constraint IM Hbs index_listing index_listing) (equivocators_no_equivocations_constraint IM Hbs)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing index_listing: VLSM message
NE:= equivocators_no_equivocations_vlsm IM Hbs: VLSM message
l: composite_label (equivocator_IM IM)
s: composite_state (equivocator_IM IM)
om: option message
Hv: equivocators_fixed_equivocations_constraint IM Hbs index_listing index_listing l (s, om)

equivocators_no_equivocations_constraint IM Hbs l (s, om)
apply Hv. Qed.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing index_listing: VLSM message
NE:= equivocators_no_equivocations_vlsm IM Hbs: VLSM message

VLSM_eq XE NE
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing index_listing: VLSM message
NE:= equivocators_no_equivocations_vlsm IM Hbs: VLSM message

VLSM_eq XE NE
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing index_listing: VLSM message
NE:= equivocators_no_equivocations_vlsm IM Hbs: VLSM message

VLSM_incl (mk_vlsm (composite_vlsm_machine (equivocator_IM IM) (equivocators_fixed_equivocations_constraint IM Hbs index_listing index_listing))) (mk_vlsm (composite_vlsm_machine (equivocator_IM IM) (equivocators_no_equivocations_constraint IM Hbs))) ∧ VLSM_incl (mk_vlsm (composite_vlsm_machine (equivocator_IM IM) (equivocators_no_equivocations_constraint IM Hbs))) (mk_vlsm (composite_vlsm_machine (equivocator_IM IM) (equivocators_fixed_equivocations_constraint IM Hbs index_listing index_listing)))
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing index_listing: VLSM message
NE:= equivocators_no_equivocations_vlsm IM Hbs: VLSM message

VLSM_incl (mk_vlsm (composite_vlsm_machine (equivocator_IM IM) (equivocators_fixed_equivocations_constraint IM Hbs index_listing index_listing))) (mk_vlsm (composite_vlsm_machine (equivocator_IM IM) (equivocators_no_equivocations_constraint IM Hbs)))
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing index_listing: VLSM message
NE:= equivocators_no_equivocations_vlsm IM Hbs: VLSM message
VLSM_incl (mk_vlsm (composite_vlsm_machine (equivocator_IM IM) (equivocators_no_equivocations_constraint IM Hbs))) (mk_vlsm (composite_vlsm_machine (equivocator_IM IM) (equivocators_fixed_equivocations_constraint IM Hbs index_listing index_listing)))
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing index_listing: VLSM message
NE:= equivocators_no_equivocations_vlsm IM Hbs: VLSM message

VLSM_incl (mk_vlsm (composite_vlsm_machine (equivocator_IM IM) (equivocators_fixed_equivocations_constraint IM Hbs index_listing index_listing))) (mk_vlsm (composite_vlsm_machine (equivocator_IM IM) (equivocators_no_equivocations_constraint IM Hbs)))
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing index_listing: VLSM message
NE:= equivocators_no_equivocations_vlsm IM Hbs: VLSM message

input_valid_constraint_subsumption (equivocator_IM IM) (equivocators_fixed_equivocations_constraint IM Hbs index_listing index_listing) (equivocators_no_equivocations_constraint IM Hbs)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing index_listing: VLSM message
NE:= equivocators_no_equivocations_vlsm IM Hbs: VLSM message

preloaded_constraint_subsumption (equivocator_IM IM) (equivocators_fixed_equivocations_constraint IM Hbs index_listing index_listing) (equivocators_no_equivocations_constraint IM Hbs)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing index_listing: VLSM message
NE:= equivocators_no_equivocations_vlsm IM Hbs: VLSM message

strong_constraint_subsumption (equivocator_IM IM) (equivocators_fixed_equivocations_constraint IM Hbs index_listing index_listing) (equivocators_no_equivocations_constraint IM Hbs)
apply strong_constraint_subsumption_all_fixed.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing index_listing: VLSM message
NE:= equivocators_no_equivocations_vlsm IM Hbs: VLSM message

VLSM_incl (mk_vlsm (composite_vlsm_machine (equivocator_IM IM) (equivocators_no_equivocations_constraint IM Hbs))) (mk_vlsm (composite_vlsm_machine (equivocator_IM IM) (equivocators_fixed_equivocations_constraint IM Hbs index_listing index_listing)))
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing index_listing: VLSM message
NE:= equivocators_no_equivocations_vlsm IM Hbs: VLSM message

input_valid_constraint_subsumption (equivocator_IM IM) (equivocators_no_equivocations_constraint IM Hbs) (equivocators_fixed_equivocations_constraint IM Hbs index_listing index_listing)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing index_listing: VLSM message
NE:= equivocators_no_equivocations_vlsm IM Hbs: VLSM message

preloaded_constraint_subsumption (equivocator_IM IM) (equivocators_no_equivocations_constraint IM Hbs) (equivocators_fixed_equivocations_constraint IM Hbs index_listing index_listing)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
XE:= equivocators_fixed_equivocations_vlsm IM Hbs index_listing index_listing: VLSM message
NE:= equivocators_no_equivocations_vlsm IM Hbs: VLSM message

strong_constraint_subsumption (equivocator_IM IM) (equivocators_no_equivocations_constraint IM Hbs) (equivocators_fixed_equivocations_constraint IM Hbs index_listing index_listing)
apply strong_constraint_subsumption_fixed_all. Qed. End all_equivocating.